{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Fourier transform methods\n",
    "\n",
    "\n",
    "In this notebook I want to show how the characteristic function can be used to price derivatives.    \n",
    "Sometimes it will be convenient to use this method, because for some stochastic processes the probability density function is not always known, or can have a quite complicated formula, while the characteristic function is frequently available.    \n",
    "For Lévy processes, in particular, the characteristic function is always known, and is given by the Lévy-Kintchkine representation (see **A3**).    \n",
    "\n",
    "I will present some examples in which I'm going to price European call options using the Normal, the Merton and the Variance Gamma characteristic functions.  \n",
    "For a complete presentation of Fourier methods, I suggest to have a look at [1].\n",
    "\n",
    "## Contents\n",
    "   - [Inversion theorem](#sec1)\n",
    "   - [Numerical inversion](#sec2)\n",
    "   - [Option pricing](#sec3)\n",
    "   - [Lewis method](#sec4)\n",
    "   - [Fast Fourier Transform](#sec5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us recall the definition of the **characteristic function** $\\phi_{X}(\\cdot)$ of the random variable $X$:\n",
    "\n",
    "\\begin{align}\n",
    "\\phi_{X}(u) &= \\mathbb{E} \\bigl[ e^{iuX} \\bigr] \\nonumber \\\\\n",
    "            &= \\int_{\\mathbb{R}} e^{iux} f_X(x) dx.\n",
    "\\end{align}\n",
    "\n",
    "where $f_X$ is the density of $X$.    \n",
    "The characteristic function is nothing but the **Fourier transform** of $f_X$.    \n",
    "Let us review some properties:\n",
    "-  $\\phi_{X}(u)$ always exists. This is because $\\bigl| \\int_{\\mathbb{R}} e^{iux} f_X(x) dx \\bigr| \\leq \\int_{\\mathbb{R}} | e^{iux} f_X(x)| dx < \\infty$.  Recall that $|e^{iux}|=1$ and $\\int_{\\mathbb{R}} |f_X(x)| dx = 1$.\n",
    "-  $\\phi_{X}(0) = 1$.\n",
    "-  $\\phi_{X}(u)^{*} = \\phi_{X}(-u)$, where $*$ means complex conjugate.\n",
    "\n",
    "The density function can be obtained by taking the **inverse Fourier transform**:\n",
    "\n",
    "$$ f_X(x) = \\frac{1}{2\\pi} \\int_{\\mathbb{R}} e^{-iux} \\phi_X(u) du $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec1'></a>\n",
    "## Inversion theorem\n",
    "\n",
    "Let us consider the following representation of the cumulative density function:\n",
    "\n",
    "\\begin{align*}\n",
    "F_X(x) &= \\mathbb{P}(X<x) = \\int_{-\\infty}^x f_X(t) dt \\\\\n",
    "       &= \\frac{1}{2} - \\frac{1}{2\\pi} \\int_{\\mathbb{R}} \\frac{e^{-iux} \\phi_X(u)}{iu} du \n",
    "\\end{align*}\n",
    "\n",
    "By taking the derivative of $F_X$, you can check that it gives the expression for $f_X$.\n",
    "\n",
    "But.... How to obtain this formula?\n",
    "\n",
    "I think this is a quite interesting topic, so... I present the proof.    (for more information have a look at [2])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Proof - step 1\n",
    "\n",
    "Let us consider the sign function [wiki](https://en.wikipedia.org/wiki/Sign_function),\n",
    "$$ sgn(x) =  \\begin{cases}\n",
    " -1 &=  x<0 \\\\\n",
    " 0  &=  x=0 \\\\\n",
    " 1  &=  x>0.\n",
    "\\end{cases} $$\n",
    "\n",
    "The step function has Fourier transform equal to \n",
    "$$\\mathcal{F}[sgn(x)] = \\frac{2}{iu}$$ \n",
    "(intended as the [Cauchy principal value](https://en.wikipedia.org/wiki/Cauchy_principal_value) ).\n",
    "\n",
    "In order to prove it, let us consider the function\n",
    "\n",
    "$$ g_a(x) =  \\begin{cases}\n",
    " -e^{ax} &=  x<0 \\\\\n",
    " 0  &=  x=0 \\\\\n",
    " e^{-ax}  &=  x>0.\n",
    "\\end{cases} $$\n",
    "\n",
    "with $a>0$. When $a \\to 0$, the function $g_a(x)$ converges to $sgn(x)$.\n",
    "\n",
    "The Fourier transform of $g_a$ can be computed easily by splitting the integral in two (if you are lazy, have a look at the table [here](https://en.wikipedia.org/wiki/Fourier_transform#Square-integrable_functions,_one-dimensional)):\n",
    "\n",
    "\\begin{align*}\n",
    "\\mathcal{F}[g_a(x)] &= \\frac{1}{a+iu} - \\frac{1}{a-iu} \\\\\n",
    "                  &= - \\frac{2iu}{a^2 + u^2}  \n",
    "\\end{align*}\n",
    "\n",
    "We can send $a\\to 0$ and obtain the relation we were looking for.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Proof - step 2\n",
    "\n",
    "The convolution of the density function $f_X$ with the sign function is given by:\n",
    "\n",
    "\\begin{align*}\n",
    "(f_X * sgn)(x) &= \\int_{-\\infty}^{\\infty} f_X(x+t) \\, sgn(t) \\, dt \\\\\n",
    "               &= \\int_{-\\infty}^{0} f_X(x+t) \\, (-1) dt + \\int_{0}^{\\infty} f_X(x+t)\\, (1) dt \\\\\n",
    "               &= - F_X(x) + 1 - F_X(x) \\\\\n",
    "               &= 1 - 2 F_X(x)\n",
    "\\end{align*}\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Proof - step 3\n",
    "\n",
    "By the convolution theorem [wiki](https://en.wikipedia.org/wiki/Convolution_theorem) we know that:\n",
    "\n",
    "$$ (f_X * sgn) = \\mathcal{F}^{-1} \\, \\biggl[ \\mathcal{F}[f_X] \\cdot \\mathcal{F}[sgn] \\biggr] $$\n",
    "\n",
    "Therefore we have that \n",
    "\n",
    "\\begin{align*}\n",
    "  (f_X * sgn)(x) &= \\frac{1}{2\\pi} \\int_{\\mathbb{R}} e^{-iux} \\phi_X(u) \\cdot \\frac{2}{iu} \\, du\n",
    "\\end{align*}\n",
    "\n",
    "#### Proof - conclusion\n",
    "\n",
    "We can put together the steps 2 and 3:\n",
    "\n",
    "$$ 1 - 2 F_X(x) = \\frac{1}{2\\pi} \\int_{\\mathbb{R}} e^{-iux} \\phi_X(u) \\cdot \\frac{2}{iu} \\, du $$\n",
    "\n",
    "Rearranging the terms, we can conclude the proof:\n",
    "\n",
    "$$ F_X(x) = \\frac{1}{2} - \\frac{1}{2\\pi} \\int_{\\mathbb{R}} e^{-iux} \\phi_X(u) \\cdot \\frac{1}{iu} \\, du $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Gil Pelaez formulas\n",
    "\n",
    "Recall that for a complex number z,\n",
    "\n",
    "$$ Re[z] = \\frac{z+z^*}{2}  \\quad \\quad Im[z] = \\frac{z-z^*}{i2} $$\n",
    "\n",
    "Starting from the inversion formula, **Gil Pelaez** [5] obtained the following expression:\n",
    "\n",
    "\\begin{align*}\n",
    "  F_X(x) &= \\frac{1}{2} - \\frac{1}{2\\pi} \\int_{\\mathbb{R}} e^{-iux} \\phi_X(u) \\cdot \\frac{1}{iu} \\, du \\\\\n",
    "         &= \\frac{1}{2} - \\frac{1}{2\\pi} \\int_{-\\infty}^0 e^{-iux} \\phi_X(u) \\frac{1}{iu} \\, du\n",
    "              + \\frac{1}{2\\pi} \\int_0^{\\infty} e^{-iux} \\phi_X(u) \\frac{1}{iu} \\, du \\\\\n",
    "         &= \\frac{1}{2} - \\frac{1}{2\\pi} \\int_0^{\\infty} \\biggl(-e^{iux} \\phi_X(-u) + e^{-iux} \\phi_X(u) \\biggr) \\frac{1}{iu} \\, du \\\\\n",
    "         &= \\frac{1}{2} - \\frac{1}{\\pi} \\int_0^{\\infty} \\frac{Im[ e^{-iux} \\phi_X(u) ]}{u} du\n",
    "\\end{align*}\n",
    "\n",
    "This formula can also be written as:\n",
    "\n",
    "$$ F_X(x) = \\frac{1}{2} - \\frac{1}{\\pi} \\int_0^{\\infty} Re\\biggl[ \\frac{ e^{-iux} \\phi_X(u)}{iu} \\biggr] du $$\n",
    "\n",
    "We obtain the expression for the density by taking the derivative:\n",
    "\n",
    "$$ f_X(x) = \\frac{1}{\\pi} \\int_0^{\\infty} Re\\biggl[ e^{-iux} \\phi_X(u) \\biggr] du $$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Pricing formula by Fourier inversion\n",
    "\n",
    "In the notebook **1.1** we found that the pricing formula for a call option with stike K and maturity T is: \n",
    "\n",
    "$$  C(S_t,K,T) = S_t \\tilde{\\mathbb{Q}} ( S_T > K ) - e^{-r(T-t)} K \\, \\mathbb{Q}( S_T >K ) $$\n",
    "\n",
    "where $\\tilde{\\mathbb{Q}}$ is the probability under the stock numeraire and $\\mathbb{Q}$ is the probability under the money market numeraire.\n",
    "\n",
    "#### This formula is model independent! \n",
    "\n",
    "When the stock follows a geometric Brownian motion, this formula corresponds to the Black-Scholes formula.\n",
    "\n",
    "Now let us express $\\tilde{\\mathbb{Q}}$ and $\\mathbb{Q}$ in terms of the characteristic function using the Gil Pelaez formula.    \n",
    "Let us call $k = \\log \\frac{K}{S_t}$ and $S_T = S_t e^{X_T}$\n",
    "- For $\\mathbb{Q}$ we can write: \n",
    "\n",
    "\\begin{align*}\n",
    "\\mathbb{Q}(S_T >K) &= 1 - \\mathbb{Q}(S_T <K) = 1 - \\mathbb{Q}(X_T < k) \\\\\n",
    "                   &= \\frac{1}{2} + \\frac{1}{\\pi} \\int_0^{\\infty} Re\\biggl[ \\frac{ e^{-iuk} \\phi_X(u)}{iu} \\biggr] du\n",
    "\\end{align*}\n",
    "\n",
    "- In the same way, for $\\tilde{\\mathbb{Q}}$, we can write: \n",
    "\n",
    "\\begin{align*}\n",
    "\\tilde{\\mathbb{Q}}(S_T >K) &= \\frac{1}{2} + \\frac{1}{\\pi} \\int_0^{\\infty} Re\\biggl[ \\frac{ e^{-iuk} \\tilde{\\phi}_X(u)}{iu} \\biggr] du \\\\\n",
    "                          &= \\frac{1}{2} + \\frac{1}{\\pi} \\int_0^{\\infty} Re\\biggl[ \\frac{ e^{-iuk} \\phi_X(u-i)}{iu \\, \\phi_X(-i)} \\biggr] du  \n",
    "\\end{align*}\n",
    "\n",
    "where\n",
    "\n",
    "\\begin{align*}\n",
    " \\tilde{\\phi}_X(u) &= \\mathbb{E}^{\\tilde{\\mathbb{Q}}} \\bigl[ e^{iuX_T} \\bigr] = \\mathbb{E}^{\\mathbb{Q}} \\biggl[ \\frac{d\\tilde{\\mathbb{Q}}}{d \\mathbb{Q}} e^{iuX_T} \\biggr] \\\\  \n",
    "                   &= \\mathbb{E}^{\\mathbb{Q}} \\biggl[ \\frac{S_t e^{X_T}}{S_t \\mathbb{E}^\\mathbb{Q}[e^{X_T}]} e^{iuX_T} \\biggr] \\\\\n",
    "                   &= \\mathbb{E}^{\\mathbb{Q}} \\biggl[ \\frac{e^{(iu+1)X_T}}{\\phi_X(-i)} \\biggr] \\\\\n",
    "                   &= \\frac{\\phi_X(u-i)}{\\phi_X(-i)}\n",
    "\\end{align*}\n",
    "\n",
    "\n",
    "(see the notebook **1.1** for a discussion about this change of measure)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec2'></a>\n",
    "## Numerical inversion\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy.stats as ss\n",
    "from scipy.integrate import quad\n",
    "from functools import partial\n",
    "from scipy.fftpack import fft, ifft\n",
    "from scipy.interpolate import interp1d\n",
    "\n",
    "from functions.BS_pricer import BS_pricer\n",
    "from functions.Parameters import Option_param\n",
    "from functions.Processes import Merton_process\n",
    "from functions.Merton_pricer import Merton_pricer\n",
    "from functions.Processes import VG_process\n",
    "from functions.VG_pricer import VG_pricer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cf_normal(u, mu=1, sig=2):\n",
    "    return np.exp( 1j * u * mu - 0.5 * u**2 * sig**2 )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cf_gamma(u, a=1, b=2):\n",
    "    return (1 - b * u * 1j)**(-a) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cf_poisson(u, lam=1):\n",
    "    return np.exp( lam * (np.exp(1j * u) -1) ) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us consider the following characteristic functions:\n",
    "\n",
    "##### Normal:\n",
    "$\\mathcal{N}(\\mu,\\sigma^2)$, $\\sigma>0$.\n",
    "$$ \\phi_N(u) = e^{i\\mu u - \\frac{1}{2}\\sigma^2 u^2} $$\n",
    "##### Gamma (shape-scale parameterization) \n",
    "$\\Gamma(a,b)$, $a,b >0$.\n",
    "$$ \\phi_G(u) = (1-ibu)^{-a} $$\n",
    "##### Poisson\n",
    "$Po(\\lambda)$, $\\lambda>0$.\n",
    "$$ \\phi_P(u) = e^{\\lambda (e^{iu}-1)} $$\n",
    "\n",
    "I want to check if the Gil Pelaez formula works:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Gil Pelaez formula for the density\n",
    "# right_lim is the right extreme of integration\n",
    "# cf is the characteristic function\n",
    "def Gil_Pelaez_pdf(x, cf, right_lim):               \n",
    "    integrand = lambda u: np.real( np.exp(-u*x*1j) * cf(u) )\n",
    "    return 1/np.pi * quad(integrand, 1e-15, right_lim )[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Normal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-8,10,100)\n",
    "plt.plot(x,ss.norm.pdf(x, loc=1, scale=2), label=\"pdf norm\")\n",
    "plt.plot(x,[Gil_Pelaez_pdf(i,cf_normal,np.inf) for i in x], label=\"Fourier inversion\" )\n",
    "plt.title(\"Comparison: pdf - Gil Pelaez inversion\"); plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Gamma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEICAYAAAAuiAdzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABat0lEQVR4nO3dd3hc5Zn+8e8zTb1Ylqtc5N4bCNuUYErAtADJ0hIIEJIQk0Dahg0pm5D22/SEJARCSCFZQkmoCZ2lFxsXjCvusi03yUWyujQz7++PGTtCyPbIlnRmRvfnus6lmVPvOTqaV8+p5pxDREREREREkofP6wAiIiIiIiLyXirUREREREREkowKNRERERERkSSjQk1ERERERCTJqFATERERERFJMirUREREREREkowKNekyZnalmT3rdY50Z2alZubMLOB1llRgZtea2Wte5xCR3kFtYc9QW9g5agtTkwq1JGRmHzOzRWZWZ2Y7zOwpMzvF61xH4py71zl3dk8v18yuMLMFZlZvZpXx1581M+vpLBJjZt8zs+VmFjazW73O09XM7GYzW2FmtWa2ycxu9jqTSLpRW9g5aguTj5mdZGZvxduKZamw/XaGxfzIzPbEux8fantrU1jXten+u6czpxoVaknGzL4M/BL4f8AAYBjwW+AiD2MdkVd7tMzsP4HbgJ8AA4mts3nAyUDIi0wCwHrgv4AnvA7STQy4GugDnAPcaGZXeBtJJH2oLez0ctUWJhkzKwIeJ/Y7KQR+DPzTzPp4mauLXQ9cDEwDpgIXAJ85wjSFzrncePe9bs6X+pxz6pKkAwqAOuDSw4yTQazx2h7vfglkxIedBlQQ+we5EthB7A/oPGAtsBf4ept53Qr8A3gAqAWWANPaDL8F2BAftgr4cJth1wKvA7+Iz/f78X6vxYdbfFglUAMsAya3+Zx/AaqAzcA3AV+b+b4G/BTYB2wCzj3M+qoH/uMI6/V84G1gP7AVuLXNsFLAAZ+ID9tHrHE7IZ65GvjNIT53NbAROCnef2v8816TyLIT2B5mAovi0+4Cft4u8zXAFmA38I12070Zz7cD+A0QajPcAZ+PZ99NrBHxtRl+HbA6vi6eAYYfwzb9v535zG3W8cb4drcJuLLNsE/Hsx3YJo9LcFt9rc378cBzxLbbNcBlXfC3+yvg1z31XaFOXTp3qC08+L2F2kJI0baQWNGysl2/tcAnE5z+WpK8LQTeAK5v8/6TwPxDjHvg9xXoie+RdOk8D6CuzS8jtmc+fLiNGPguMB/oD/SL/5F8Lz7stPj03wKC8T/kKuBvQB4wCWgCRsbHvxVoBS6Jj/+V+JdBMD78UmAwsSOvlxNrCAbFh10bX9ZNQADI4r2N01xgMbG9SAZMaDPtX4DH4plK235xxefRGs/uB24g1gjb0ayvNutlSvxzTCX2RX9xfNiBL447gUzg7Pg6ejS+jkuINThz2n3uT8TzfZ9YA3E7sX8czib2BZl7pGUnsD28CXw8/joXmN0u8+/j630a0AxMiA8/Hpgd/72UEvsy/2Kb+TrgRaCI2F7qtcCn4sMuJnY0bEJ8+m8Cb7SZ9kCD3VH32w4+Q6cKNSCHWGM8Lv5+EDCpzfa4jdg/DgaMJt5wcuRt9bU2898a//0FgOOINdAHlnHLYT5f9SEyG7F/QOZ5/R2iTl06dKgtPDBftYUuddtC4EPAqnafZR3wiwQ+c0q0hcR2Psxq874MqD3EZzrw+9pGbEfKn4Bir79vkr3zPIC6Nr8MuBLYeYRxNgDntXk/FyiPvz4NaAT88fd58T+Ktn9Ei/n3F/OttNnzEf/D3gF84BDLXgpcFH99LbCl3fC2XwJnEPvSm81791D5iX2RTmzT7zPAS23msb7NsOz4ZxjYQZ6r2q8vYo11dXw9nHqIz/FL4l+Ubb44StoM3wNc3ub9Q8S/3OP51rUZNiU+/YB2008/0rIT2B5eAb7T/ousTeYhbfq9BVxxiPl8EXikzXsHnNPm/WeB/4u/foo2e/vi20QDR3lUjaMr1KqB/wCy2g17BvhCgvNpv60e2C4vB15tN+7vgG8fzeeLT/8d4B3ie/PVqVN3bB1qCw/MQ22hS922EOgb/x18lNgOgGuAKPC7BKZNibYQiADj27wfE1+vHe1QyCVWyAWInZr7D+CZziyvN3a6Ri257AGKj3CO+2Bip0gcsDne7+A8nHOR+OvG+M9dbYY3EvtjOWDrgRfOuSixvRyDAczsajNbambVZlYNTAaKO5q2PefcC8ROM7gd2GVmd5lZfnz6UAefoaTN+51t5tMQf9k288HPSrv15Zw7yTlXGB/mi3+OWWb2oplVmVkNsdM5itvNq/06Otw6az8M51yH4ye47EP5JDAWeNfMFprZBe2G72zzuqHNMsea2b/MbKeZ7Sd2jUf7Zbb93bXdhoYDt7X5ne8ltseuhB7gnKsn1oDMA3aY2RNmNj4+eCixf87eJ4Ft9YDhwKwD48XHvZLYNR2dZmY3ErtW7XznXPPRzENE3kdtYYzawpiUbAudc3uIXVP5ZWLr6hzgeWLb1pGmTZW2sA7Ib/M+H6hz8cqs3Weqc84tcs6F49vJjcDZ8b8HOQQVasnlTWKnGlx8mHG2E/sDO2BYvN/RGnrghZn5gCHAdjMbTux0ghuBvvEv/BXEvqgOeN8fYlvOuV85544ndprJWOBmYofWWzv4DNuOIvubxPZIXnSE8f5G7ILeoc65AmKndvTUXbCOetnOuXXOuY8SO+3kR8A/zCwngUnvAN4Fxjjn8oGvd7DMoW1et92GtgKfcc4VtumynHNvAJjZynZ3bGrb3ZnI5zoS59wzzrmziJ3q8S6x7fBAtlHtx09wWz1gK/Byu8+X65y7IT6vrx/m89W1W+51xE4POdM5d8SGV0QSprawc9QWdszzttA597Jz7gTnXBHwcWAcsaN+iXzuVGgLVxI75fSAafF+CX3EA9ETHL9XUqGWRJxzNcTOqb/dzC42s2wzC5rZuWb24/ho9wHfNLN+ZlYcH/9/j2Gxx5vZR+J74r5I7Mt+PrHD7o7Yef2Y2SeI7ZlJiJmdEN+DFiR2jnQTEInv4XwQ+IGZ5cW/WL58NJ/BOVdN7HSI35rZJWaWa2Y+M5sez39AHrDXOddkZjOBj3V2WcfgqJdtZleZWb/43t3qeO/IYSZpu8z9QF18D9wNHYxzs5n1MbOhwBeIXUQPscbza2Y2KZ6hwMwuPTCRc26S+/fdmtp389pkD5pZJrHvmICZZZqZPz7swC16Szv4zAPM7MJ4I9xMbG/dgc98N/AVMzveYkbHt5/ObKv/Asaa2cfjGYPxbXVC/PP9v8N8voN7ks3sSmJ7Z89yzm08xLJE5CioLewctYWHXabXbeGM+LabT+zGMBXOuWfiw1K+LSR2neWXzazEzAYD/wn8uaMFxv8OxsW3zb7EbsL1UvzvXQ5BhVqScc79nNiX9TeJ/bFtJbZ35NH4KN8ndvejZcByYnen+v4xLPIxYofX9xHb2/MR51yrc24V8DNie+p2ETv//PVOzDef2J6dfcROJ9hD7EsKYhdd1xO7m9FrxPa0/fFowjvnfkxsfR24u9cuYudZf5XYOfoQO+/8u2ZWS6wxf/BolnWUDrvs+N6pDxxi2nOAlfG9V7cRO+++KYFlfoVYI1hL7HfwQAfjPEbsGo2lxG6h/wcA59wjxPZY3m+xU0VWAOcmsMz2fk/stJePAt+Iv/54fNhQYttER3uOfcS+6LcTO9VkDrF1iHPu78APiG0vtcT+Joo6s60652qJXeR+RXwZO+OfN6OTn+/7xK4/WGhdfERRRNQWdpbawg4lQ1v4X8SOnm4ldmTsw22GpUNb+Dvgn8T+BlcQW4e/OzDQYkcer4y/HQk8Hc+8glgB+tFOLq/XsQ5OI5VewmIPIh7tnLvK6yzSc8zMETsVZL1Hy/8mUOWc+90RRxYR6WZqC3sntYWSCjx5MKOI9F7OuWPZ6y0iIpLy1BZKInTqo4iIiIiISJLRqY8iIiIiIiJJRkfUREREREREkoxn16gVFxe70tJSrxYvIiI9aPHixbudc/28zpEq1EaKiPQOh2sfPSvUSktLWbRokVeLFxGRHmRmm73OkErURoqI9A6Hax916qOIiIiIiEiSUaEmIiIiIiKSZFSoiYiIiIiIJBk98FpEelxraysVFRU0NTV5HUW6WGZmJkOGDCEYDHodRUQk5ah9TF9H0z6qUBORHldRUUFeXh6lpaWYmddxpIs459izZw8VFRWMGDHC6zgiIilH7WN6Otr2Uac+ikiPa2pqom/fvmqE0oyZ0bdvX+0JFhE5Smof09PRto8q1ETEE2qE0pN+ryIix0bfo+npaH6vCZ36aGbnALcBfuBu59wP2w0/DXgM2BTv9bBz7rudTtMZezbA0r9B2XVQUNKtixIREZHUU717J+8+8zsslEtm3xJy+5UyfPxxBIIhr6OJiBzREY+omZkfuB04F5gIfNTMJnYw6qvOuenxrnuLNIC6XfDqT2H3mm5flIj0Ti+99BIXXHABAM3NzXzwgx9k+vTpPPDAA+8b9+c//znjx49nypQpTJs2jS9/+cu0trb2dGQRiaut2UvVHecze93PmbXyu0x75TOMemgu6358Gk2N9V7HE0lpah97RiJH1GYC651zGwHM7H7gImBVdwY7otwBsZ+1Oz2NISK9w9tvv01raytLly5937A777yTZ599lvnz51NYWEhLSws///nPaWxs1N0PRTzQ1FDHltsvZGx4E0tPuYNBE2axb2c51WteY/a6n7Potx/n+C/9A/PpChCRY6X2sfsk8g1VAmxt874i3q+9E83sHTN7yswmdTQjM7vezBaZ2aKqqqqjiNtG3sDYTxVqItJJ5eXljB8/nmuuuYapU6dyySWX0NDQAMDTTz/N+PHjOeWUU3j44YcBqKys5KqrrmLp0qVMnz6dDRs2vGd+P/jBD7jjjjsoLCwEIBQKccstt5Cfnw/ADTfcQFlZGZMmTeLb3/72welKS0v5+te/zoknnkhZWRlLlixh7ty5jBo1ijvvvBOI7bWcM2cOl112GWPHjuWWW27h3nvvZebMmUyZMuVgln/+85/MmjWLGTNm8MEPfpBdu3Z16zoUSVatLc28+5tLmNC8gnfK/ofpZ32MAUNGMb7sTGZf+W3eHPE5ymr/jwV//IrXUUWSjtrH5JLIEbWOrnxz7d4vAYY75+rM7DzgUWDM+yZy7i7gLoCysrL28+icUA5k5KtQE0lx3/nnSlZt39+l85w4OJ9vf6jD/UUHrVmzhj/84Q+cfPLJXHfddfz2t7/lxhtv5NOf/jQvvPACo0eP5vLLLwegf//+3H333fz0pz/lX//613vmU1tbS11d3WFvt/uDH/yAoqIiIpEIZ555JsuWLWPq1KkADB06lDfffJMvfelLXHvttbz++us0NTUxadIk5s2bB8A777zD6tWrKSoqYuTIkXzqU5/irbfe4rbbbuPXv/41v/zlLznllFOYP38+Zsbdd9/Nj3/8Y372s58dy2oUSUlLfvdpZjW8yYKJX2PWhz7zvuGzP/593vrVJmZX/IGFj47ihIs/50FKkSNT+6j2MZEjahXA0DbvhwDb247gnNvvnKuLv34SCJpZcZelPJS8gVCnQk1EOm/o0KGcfPLJAFx11VW89tprvPvuu4wYMYIxY8ZgZlx11VVHnI9z7j13cnrmmWeYPn06paWlvPHGGwA8+OCDHHfcccyYMYOVK1eyatW/zxy/8MILAZgyZQqzZs0iLy+Pfv36kZmZSXV1NQAnnHACgwYNIiMjg1GjRnH22WcfnKa8vByIPXtn7ty5TJkyhZ/85CesXLnymNeRSKrZXr6Gst2Ps6DfJcy6/JYOxzGfj+k3/ImVoWlMe/u/2brunR5OKZLc1D4mj0SOqC0ExpjZCGAbcAXwsbYjmNlAYJdzzpnZTGIF4J6uDvs+uQOgNnUOX4rI+x1pz153aX+b3APvO3v73Pz8fHJycti0aRMjRoxg7ty5zJ07lwsuuICWlhY2bdrET3/6UxYuXEifPn249tpr3/MclYyMDAB8Pt/B1wfeh8Ph94zTfry249x00018+ctf5sILL+Sll17i1ltv7dTnEEkHW56+jf4Ywy/82mHHC2VkMuC6e4neMYOdT/wPQ794fw8lFEmc2ke1j0c8ouacCwM3As8Aq4EHnXMrzWyemc2Lj3YJsMLM3gF+BVzhnDu2UxsTkTcIand0+2JEJP1s2bKFN998E4D77ruPU045hfHjx7Np06aD57Xfd999Cc3ra1/7GjfccMPBPXzOuYONzf79+8nJyaGgoIBdu3bx1FNPdf2HAWpqaigpiV0+fM8993TLMkSSWUNdDRN3Pso7eacycOjoI45fPHAo7/S/iOn7nmXHZt1BWuQAtY/JI6HnqMVPZ3yyXb8727z+DfCbro2WgLwBsdv0Owd6OKCIdMKECRO45557+MxnPsOYMWO44YYbyMzM5K677uL888+nuLiYU045hRUrVhxxXjfccAMNDQ3MmjWLjIwMcnNzOfnkk5kxYwYFBQXMmDGDSZMmMXLkyIOnk3S1W2+9lUsvvZSSkhJmz57Npk2bjjyRSBpZ/uTvmEU9OR9I/Jqz4Rd+DXf3I2z55w8ZdOOfujGdSOpQ+5g8rCcOfHWkrKzMLVq06Nhm8ubt8MzX4avlkNWnS3KJSPdbvXo1EyZM8Gz55eXlXHDBBQk1MtJ5Hf1+zWyxc67Mo0gpp0vayF7ERaNs+f4UWiyT0d9Y2Knb7r9125VM2/sMtZ9ZTPHg4d2YUuTI1D6mt862j6n9AJGDz1LTdWoiIiK91YpXH2V4tILqqZ/s9LPRBp//NQKEWf/Y/3RTOhGRo5PahVreoNhPXacmIp1QWlqqvYUiaSQ6/052U8jUudd2etohoyfzdsGZTN35MNW7dSdp6d3UPiaXlC3UFpXv5dq/b4m9qdMRNRERkd6oYv0KpjUuYN3QS8nIzD6qeRSf+zWyrZnVj/2ki9OJiBy9lC3UCrODvLUnFHujI2oiIiK90tbXY3efG3XO0T+4unRCGe9knsCIrY8SjUS6KpqIyDFJ2UJtRHEuLphDsy9b16iJiIj0UgXbXmaDfyT9S0Yc03xaJ13KQHbz7lvPdlEyEZFjk7KFmt9nTBycz24r0hE1ERGRXmh/9R7GNK+icsAHjnleE0+/ggaXQd3Ce7sgmYjIsUvZQg1gSkkBFeF8nI6oiUgn+f1+pk+ffrArLy8/5nlu376dSy655Jjmcd555x18MGhPWrRoEZ///Od7fLkix2LDgn8RtAgFU8495nll5xawquBUxu99geamhi5IJ5Ka1D6+l5ftY0IPvE5Wkwbns3NhIa012wl5HUZEUkpWVhZLly7tsvmFw2EGDx7MP/7xj4SniUQi+P3+9/R78sknuyxTR8LhMIHA+7/6y8rKKCvTY84ktbSueY5al8WY48/okvmFZlxB/svP8fYrDzPj7Ku6ZJ4iqUbt43t52T6m9BG1ySUF7HJ98NXvBI8e3C0i6WPp0qXMnj2bqVOn8uEPf5h9+/YBcNppp3Hg4cO7d++mtLQUgD//+c9ceumlfOhDH+Lss8+mvLycyZMnA7FG5uabb+aEE05g6tSp/O53vwPgpZde4vTTT+djH/sYU6ZMeV+G0tJSdu/eTXl5ORMmTODTn/40kyZN4uyzz6axsZHVq1czc+bMg+OXl5czdepUABYvXsycOXM4/vjjmTt3Ljt27DiY/+tf/zpz5szhtttu4+9//zuTJ09m2rRpnHrqqQdzXXDBBQDs3buXiy++mKlTpzJ79myWLVsGwK233sp1113HaaedxsiRI/nVr37Vpes/mZnZOWa2xszWm9ktHQy/0syWxbs3zGxam2HlZrbczJaamZ5i3UVcNMqwvW+yLreMYCijS+Y58ZQL2UMBbtkDXTI/kXSh9tGb9jGlj6iN6Z/LY9aHQKQJmvdDZoHXkUSks566BXYu79p5DpwC5/7wsKM0NjYyffp0AEaMGMEjjzzC1Vdfza9//WvmzJnDt771Lb7zne/wy1/+8rDzefPNN1m2bBlFRUXvOT3kD3/4AwUFBSxcuJDm5mZOPvlkzj77bADeeustVqxYwYgRh7/5wbp167jvvvv4/e9/z2WXXcZDDz3EVVddRUtLCxs3bmTkyJE88MADXHbZZbS2tnLTTTfx2GOP0a9fPx544AG+8Y1v8Mc//hGA6upqXn75ZQCmTJnCM888Q0lJSYenkXz7299mxowZPProo7zwwgtcffXVB/euvvvuu7z44ovU1tYybtw4brjhBoLB4GE/R6ozMz9wO3AWUAEsNLPHnXOr2oy2CZjjnNtnZucCdwGz2gw/3Tm3u8dC9wKb1yyhlN1sGdE1R9MAAsEQ6/qdzYzKR9lfvYf8wr5dNm+RTlP7eEi9pX1M6UIt4PcRKBwMtUDtThVqIpKw9qd21NTUUF1dzZw5cwC45ppruPTSS484n7POOouioqL39X/22WdZtmzZwVM9ampqWLduHaFQiJkzZx6xEYJYA3mgsTz++OMPNnSXXXYZDz74ILfccgsPPPAADzzwAGvWrGHFihWcddZZQGyP5aBBgw7O6/LLLz/4+uSTT+baa6/lsssu4yMf+cj7lvvaa6/x0EMPAXDGGWewZ88eampqADj//PPJyMggIyOD/v37s2vXLoYMGXLEz5LiZgLrnXMbAczsfuAi4GCh5px7o83484G0Xyle27n4X5QCw2Zd2KXzLTrxKjIe/zvLXvhfTvjIF7p03iKpQO1j8rSPKV2oART2HwK1EN2/A1+/cV7HEZHOOsKevWQQCASIRqMANDU1vWdYTk5Oh9M45/j1r3/N3Llz39P/pZdeOuQ07WVk/Pt0Lr/fT2NjIxBrVC699FI+8pGPYGaMGTOG5cuXM2nSJN58880O59V2mXfeeScLFizgiSeeYPr06e+7FsF1cCq5mXWYKRwOJ/RZUlwJsLXN+wree7SsvU8CT7V574BnzcwBv3PO3dX1EXuf3K0vUu4bRunQ0V063zHTT6Xin4PIWvMwoEJNPKT28ZB6S/uY0teoAQyKPzdl784tHicRkVRWUFBAnz59ePXVVwH461//enDvYWlpKYsXLwZI+GLouXPncscdd9Da2grA2rVrqa+v75Kso0aNwu/3873vfe/gnsBx48ZRVVV1sCFqbW1l5cqVHU6/YcMGZs2axXe/+12Ki4vZunXre4afeuqp3Htv7BblL730EsXFxeTn53dJ9hRlHfTr8MJoMzudWKH21Ta9T3bOHQecC3zOzE49xLTXm9kiM1tUVVV1rJnTWn1tNWObVrCz/7Hflr898/nYOvRDTGx6h6rt5V0+f5FUo/bx33q6fUz5I2ojRoyCV6Byx2aKvQ4jIintnnvuYd68eTQ0NDBy5Ej+9Kc/AfCVr3yFyy67jL/+9a+ccUZi18N86lOfory8nOOOOw7nHP369ePRRx/tsqyXX345N998M5s2bQIgFArxj3/8g89//vPU1NQQDof54he/yKRJk9437c0338y6detwznHmmWcybdq0g+fnQ+yi6E984hNMnTqV7Oxs7rnnni7LnaIqgKFt3g8BtrcfycymAncD5zrn9hzo75zbHv9ZaWaPEDuV8pX208ePtN0FUFZWpjtkHca6t55muoXJnTT3yCMfhYGzL8O35S42vv4Q/S79z25ZhkgqUfsY09Pto3V0CK8nlJWVuQN3iTkWzeEIrd8bzOpBF3PCvN91QTIR6W6rV69mwoQJXseQbtLR79fMFjvnUvL+/2YWANYCZwLbgIXAx5xzK9uMMwx4Abi67fVqZpYD+JxztfHXzwHfdc49fbhldlUbma4W/OYTTKl6Av/XysnIzO7y+btolB3fG0dl1iim/9dhf1UiXUrtY3rrbPuY8kfUMgJ+dvuLiNTs8DqKiIikIedc2MxuBJ4B/MAfnXMrzWxefPidwLeAvsBv49crhOMN7wDgkXi/APC3IxVpcmSD9i5gXfZ0pnVDkQbx0x/7foCpVf+kqaGOzOzcblmOiMjhpHyhBtCc1Z9AfSXOuYMX9ImIiHQV59yTwJPt+t3Z5vWngE91MN1GYFr7/nL0avZWMSy6jW0DL+7W5WRPuYCsFx/infn/YtoZV3TrskREOpLyNxMBsLyB9I3uZVt1o9dRRCRBXp12Ld1Lv1fpbpuXxS7vyxs1u1uXM3bWOdS7TJpWPnnkkUW6kL5H09PR/F7TolDLKR5Cf6tmRUWN11FEJAGZmZns2bNHjVGacc6xZ88eMjMzvY4iaax+43yizhg+5ZRuXU5GZjZrck9gxJ5XcfHbj4t0N7WP6elo28e0OPWxz4ChBFc0s3bLds6ZMujIE4iIp4YMGUJFRQW6BXn6yczM7A0PwBYPZVe+zRb/UEoL3v8g3a4WHj2X/u+8yvrlbzJ62sndvjwRtY/p62jax7Qo1IIFJQBsqygHjvc0i4gcWTAYZMSIEV7HEJEU46JRhjW9y7rCD1DaA8sbddKHiS79b6qWPK5CTXqE2kdpKy1OfSRvAAB7dm7WoWIREZE0tW3jKvpQiyvpmSc99B0whHXBcfTd9kKPLE9EpK00KdRipztmN++mfE+Dx2FERESkO+xc9RoAxeN77ujW3iGnMza8lt07t/TYMkVEIF0KtdzYEbUBto+3t+zzOIyIiIh0h8jWhTS4DIaPP67Hljmg7MMAbHz94R5bpogIpEuhlpGHC2ZTEqhh6dZqr9OIiIhIN+izbxnlGWMJBEM9tswRE09gJ8UENz7XY8sUEYF0KdTMsLyBjMmu5+0t1V6nERERkS7W3NRAaetG9hdN7dHlms/Hlj6zGFW/hHBrS48uW0R6t/Qo1AAKhjDSV8nqHftpao14nUZERES6UPmK+YQsTKh0Zo8v2z/mTPJpYP07r/b4skWk90qfQm3ICQxoWEsw2siKbXrwtYiISDrZt+5NAIZMmdPjyx4183yizti3/NkeX7aI9F7pU6gNOxGfCzPDt16nP4qIiKSZwI4lVFJE/5Kef8ZUYfFANgRGUbD9tR5ftoj0XgkVamZ2jpmtMbP1ZnbLYcY7wcwiZnZJ10VM0NCZgHFm9kbdUERERCTNDKxdQUXOJM+Wv3vASYxpWU3dft1dWkR6xhELNTPzA7cD5wITgY+a2cRDjPcj4JmuDpmQzAIYOJlTQmt1i34REZE0srdyG0PcTloGzPAsQ97EswhahPULvfk3R0R6n0SOqM0E1jvnNjrnWoD7gYs6GO8m4CGgsgvzdc6wkxjZtIrKmjp27W/yLIaIiIh0na0r3wAgb9RszzKMKfsgjS5E87u6Tb+I9IxECrUSYGub9xXxfgeZWQnwYeDOw83IzK43s0VmtqiqqqqzWY9s+IkEo01MsnJdpyYiIpImGra8DcDQSd4VahmZ2azLmsrAPfM9yyAivUsihZp10M+1e/9L4KvOucPeF985d5dzrsw5V9avX78EI3bCsJMAODGwlre36vRHERGRdBDavZod9CO/sK+nORqGfIDh0Qp2VWzwNIeI9A6JFGoVwNA274cA29uNUwbcb2blwCXAb83s4q4I2Cl5A6BoJKdlrWepjqiJiIikhb7169iVPdrrGPSffi4Amxc+4XESEekNEinUFgJjzGyEmYWAK4DH247gnBvhnCt1zpUC/wA+65x7tKvDJmTYSUyNrGZ5xT7CkagnEURERKRrNDXWMySyjcaiCV5HYcTEE9hNIb6NL3kdRUR6gSMWas65MHAjsbs5rgYedM6tNLN5ZjavuwN22vATyY7UMDi8lXd31nqdRkRERI5BxdqlBCxKaPBUr6NgPh/l+WWMrF1INHLYqz1ERI5ZQs9Rc8496Zwb65wb5Zz7Qbzfnc659908xDl3rXPuH10dNGHDTgRgpm8Ni8r3ehZDREREjt2+TbEbifQb7d2t+dtyI0+niP1sWrnA6ygikuYSKtRSStFIyOnPnIx1LCzXDUVERERSWWTHCppckJKRk72OAsDQ488BoGr58x4nEZF0l36FmhkMP5ETfGtYsGkvzrW/QaWIiIikipzqd9kaLMUfCHgdBYCBQ0dTYYPI3PaG11FEJM2lX6EGMOwkisK7yKiroHxPg9dpRERE5Ci4aJSS5g3syx3jdZT32NbnBEbVLyXc2uJ1FBFJY+lZqI0+E4AL/PN5a9Mej8OIiIjI0dhTWUER+4kOSI7THg/wjzqVPGtk43IdVROR7pOehVrxGNzwk7gq+AILN6pQExERSUU71iwCIG/YdG+DtFMav05tz4r/8ziJiKSz9CzUADv+Ooayi8jGF72OIiIiIkehfus7AJSMO97jJO9VPHAo5b5h5Gx/3esoIpLG0rZQY+KFNAULOavhKXbUNHqdRkREUpiZnWNma8xsvZnd0sHwK81sWbx7w8ymJTqtHJq/ahWVFFFYPNDrKO+zq+gERjeuoKW5yesoIpKm0rdQC2RQO/4yzvIt5p3Va7xOIyIiKcrM/MDtwLnAROCjZjax3WibgDnOuanA94C7OjGtHEJR3Tp2ZI7yOkaHgmNOJ9ua2bD0Za+jiEiaSt9CDejzgU8TtAi+pfd6HUVERFLXTGC9c26jc64FuB+4qO0Izrk3nHMHHt45HxiS6LTSsdaWZoaGt9DQZ4LXUTo0quxsos6oXqnr1ESke6R1oRboP5aVGdOZuutRiEa9jiMiIqmpBNja5n1FvN+hfBJ4qrPTmtn1ZrbIzBZVVVUdQ9z0ULF+GSGLEBycXHd8PKCg7wA2BkaSv1N3fhSR7pHWhRpAxcjLGegqqV31jNdRREQkNVkH/VyHI5qdTqxQ+2pnp3XO3eWcK3POlfXr1++ogqaTPesXA1A8OrluJNLW7uKZjGleTVNDnddRRCQNpX2hVnT8R6hy+TS8+Sevo4iISGqqAIa2eT8E2N5+JDObCtwNXOSc29OZaeX9Wncsp8UFKBk1xesoh5Q17jRCFmb9Yp3+KCJdL+0LtSnD+/Gsm0WfHa9AuNnrOCIiknoWAmPMbISZhYArgMfbjmBmw4CHgY8759Z2ZlrpWM6+NWwNDCMYyvA6yiGNPP5sws5H7bsveB1FRNJQ2hdqmUE/W/ueQijaCJv1vBMREekc51wYuBF4BlgNPOicW2lm88xsXny0bwF9gd+a2VIzW3S4aXv8Q6Sg/k2b2JeTnHd8PCCvoIgNwTH02bXA6ygikoYCXgfoCfkTzqT59e/jVj1N5qgzvI4jIiIpxjn3JPBku353tnn9KeBTiU4rh1dbs5eB7GZT37FeRzmivf1nUbbtXuprq8nJK/Q6joikkbQ/ogYwa9wQ3oxOJLzmaa+jiIiIyBHs2LAMgMxByf/IuZyxpxG0CBt0nZqIdLFeUahNG1LA677jya3bDHs2eB1HREREDqNmywoAikck741EDhh1/Jm0Oj/1a1/yOoqIpJleUagF/D5qh54ee7PuWW/DiIiIyGGFd62mxQUYVJqcD7tuKyevkA2hcRRV6jo1EelavaJQAxg/YQrro4NpXPXUkUcWERERz2TVbGCbv4RAMOR1lITs6z+TUa3rqNu/z+soIpJGek2hdsqYYl6MTidU8QY068GUIiIiyaq4cRN7s0d4HSNhuePOIGBRNix+3usoIpJGek2hNqpfLm9nzsQfbYVNr3gdR0RERDrQ1FDHoOguWvqM8TpKwkYffwYtzk/jmhe9jiIiaaTXFGpmRs6YU6gnE7f2Ga/jiIiISAe2bViB3xyhQcl/fdoBWTl5rA9NoO/ut7yOIiJppNcUagAnjhnEq5EphNc8A855HUdERETa2bdlOQBFwyd7nKRz9g+YxcjW9eyv3uN1FBFJE72qUDt5dDEvRKcTrN8Blau8jiMiIiLthHesJuKMwaOS/9b8beVOOB2/OTYufs7rKCKSJnpVoTYgP5MdfU6Ivdn8hrdhRERE5H1C+9ax3TeIjMxsr6N0yujjzqDZBWnS89REpIv0qkINYNSYSVS6PkQ2z/c6ioiIiLRT1LiJ3VmlXsfotMysHNZnTKBY16mJSBfpdYXaKWP6sTA6htZNOqImIiKSTFpbmimJbKepMHXu+NjW/oGzGRneSM3eKq+jiEga6HWF2kmj+/I248ls2A4127yOIyIiInHbN60maBECA8Z7HeWoFEw8E585Ni7S3aVF5Nj1ukItOxSgdfDM2JutOv1RREQkWewtfweAwuGpdSORA0ZNP5VGF6J53UteRxGRNNDrCjWAUVNm0+AyqFnzqtdRREREJK5px2oASkZP9TjJ0cnIzGZ95mQG7NF1aiJy7BIq1MzsHDNbY2brzeyWDoZfZGbLzGypmS0ys1O6PmrXOX1iCW9HR9Na/qbXUURERCQuuHcdO+hHdm6B11GOWt3gExkR3cyeXRVeRxGRFHfEQs3M/MDtwLnAROCjZjax3Wj/B0xzzk0HrgPu7uKcXWpoUTYbsyZTVLsWmmu9jiMiIiJAn/qNVGWWeh3jmBRN+iAA5Yt1nZqIHJtEjqjNBNY75zY651qA+4GL2o7gnKtzzrn42xzAkeQCpSfiI0rjpgVeRxEREen1IuEwJeGtNBSM9jrKMRk17RTqXBbhDS97HUVEUlwihVoJsLXN+4p4v/cwsw+b2bvAE8SOqiW10cedTsQZ2955wesoIiIivd7OLevItFZ8/cd5HeWYBIIhNmRPZfDehV5HEZEUl0ihZh30e98RM+fcI8658cDFwPc6nJHZ9fFr2BZVVXn7jJHpY4axzoYR3aIjaiIiIl7bHb/jY/6QSR4nOXaNQ05mqNvOrooNXkcRkRSWSKFWAQxt834IsP1QIzvnXgFGmVlxB8Pucs6VOefK+vXr1+mwXSno97GrYDol9SuIhls9zSIiItLbNW5/F4BBo6d5nOTY9ZtyFgBbdJ2aiByDRAq1hcAYMxthZiHgCuDxtiOY2Wgzs/jr44AQsKerw3a1zFEnk0MTG1boqJqIiIiXfHvWsZd8CvoO8DrKMRsxaRbV5OI26TFAInL0jlioOefCwI3AM8Bq4EHn3Eozm2dm8+Kj/QewwsyWErtD5OVtbi6StMaWxe7MVLHsRY+TiIiI9G55dZvYGRzmdYwu4fP72Zgzg2HVC3HRqNdxRCRFBRIZyTn3JPBku353tnn9I+BHXRut+/UZPIoqXz8CFfO9jiIiItKrDWzdyrqiOV7H6DKtw05h4OpX2Va+hpKRE7yOIyIpKKEHXqezvf1nM7l5KVt363lqIiIiXthXtYM+7Cfad4zXUbrMwKmx69S2va3r1ETk6PT6Qq3vtPPoY3UsefN5r6OIiIj0Srs2Lgcga1D6HHkaNm4GuynEV/6K11FEJEX1+kKteNo5RPDRvFp7vEREpGNmdo6ZrTGz9WZ2SwfDx5vZm2bWbGZfaTes3MyWm9lSM1vUc6lTR+221QAUl07xOEnXMZ+P8vwyRtYuJBqJeB1HRFJQry/UyC6iMn8yY+sWsLOmyes0IiKSZMzMT+xGWecCE4GPmtnEdqPtBT4P/PQQszndOTfdOVfWfUlTV6RyDc0uyMBh6XPqI0B0xGkUsZ/y1arPRaTzVKgBofFnM9U28dLbq7yOIiIiyWcmsN45t9E51wLcD1zUdgTnXKVzbiGgB3Mehcz9G9nuL8EfSOgeZylj+AnnAVC59CmPk4hIKlKhBvSddj4+c1S9/eSRRxYRkd6mBNja5n1FvF+iHPCsmS02s+u7NFma6Nu4mX3Zw72O0eUGDBnFZt8Qsite8zqKiKQgFWoAg6ZTHyxi2N7X2V3X7HUaERFJLtZBv848K/Rk59xxxE6d/JyZndrhQsyuN7NFZraoqqrqaHKmpOamBgZFd9JSONrrKN1iZ9EsRjcuo7mpwesoIpJiVKgB+Hy0lp7OB3zLeG7Fdq/TiIhIcqkAhrZ5PwRIuLFwzm2P/6wEHiF2KmVH493lnCtzzpX169fvGOKmlp2bVhOwKIEB47yO0i1CY88g25pZv/hFr6OISIpRoRZXMOVciqyONUte9jqKiIgkl4XAGDMbYWYh4Arg8UQmNLMcM8s78Bo4G1jRbUlT0N4tsdVROGySx0m6x6iZ5xJ2Pvaves7rKCKSYtLrqt1jYKPPJIqPoh2vUN3wMQqzQ15HEhGRJOCcC5vZjcAzgB/4o3NupZnNiw+/08wGAouAfCBqZl8kdofIYuARM4NYm/s359zTHnyMpNW8Yw0Ag0ZO9jhJ98gv7Mu7wXH03fW611FEJMWoUDsgu4im/tM5dedSnl6xkytmDvM6kYiIJAnn3JPAk+363dnm9U5ip0S2tx+Y1r3pUpt/3zp20ZcBeYVeR+k21QNP4oStf6RmbxUFRb3ntFYROTY69bGNrIlzmerbyPOLVnodRUREpFcoqC+nMiO9d47mTz4bvzk2LNTBVBFJnAq1NmzChfhwjN72KNuqG72OIyIiktZcNMrg1q005I30Okq3Gj3jNBpcBq1rn/c6ioikEBVqbQ2YSNPQD3Bt4Bn+uaTc6zQiIiJpbffOLeRaI/Qb63WUbhXKyGRd9jQG733L6ygikkJUqLWTeeoXGGj7qH7rAZzrzGNyREREpDN2bVwGQM7gCR4n6X6NQ09lqNvO9vI1XkcRkRShQq290R+kOncUFzQ8wqrtNV6nERERSVv1298FoP/IqR4n6X6DjjsfgK1vJfRkBxERFWrvY0bo5M8x2VfO26/80+s0IiIiactVraXeZdJv0HCvo3S7YWOns4N+hMpf8DqKiKQIFWodyC67kv2+QkrX/olIVKc/ioiIdIfs2o1sDw7FfOn/74j5fGzpexJj65fQ0tzkdRwRSQHp/814NIKZ7Bx3Fae4xSxdogt/RUREukP/ps3UZJd6HaPHhMadTY41sXbRc15HEZEUoELtEIbN/TxNLkjLa7/yOoqIiEjaqa+tZiC7CRel9x0f2xoz+3xanJ+65U95HUVEUoAKtUPILBzAO8Xnc/y+p9lfucXrOCIiImll+/rYHR9Dg9L/jo8H5Ob3YV3GZAZUvu51FBFJASrUDqPwrJvxEaXiiR95HUVERCStVG9ZAUDf4ZM8TtKzaoeexohoObsqNngdRUSSnAq1wxg3fjIvZp7ByM0P4uoqvY4jIiKSNsK73qXV+Rk8sncVagOO/xAAmxfoNv0icngq1I6gceZNhFwrlc/+wusoIiIiaSOzej3b/YMIhjK8jtKjSscfTyVFBDbqNv0icngq1I7g9JNP5mlmU7Diz9C4z+s4IiIiaaGoaTN7s0q9jtHjzOejvM9JjKlbSGtLs9dxRCSJqVA7grzMIGvHXE9mtIHm1+/wOo6IiEjKa21pZnBkB02Fo72O4ong+LPJs0bWLXnR6ygiksRUqCXgtDln8FzkeFhwBzTXeh1HREQkpW3fuJKgRQgOGO91FE+MmnUBrc5PzbInvI4iIklMhVoCpg0p4KnCK8ho3Q8rHvY6joiISErbu3k5AAXDJnucxBv5hX1ZmzGJgTtf9jqKiCQxFWoJMDNmnHgWa6Ml1M//k9dxREREUlrTjtUAlIye6nES79SWns2I6Ga2bVztdRQRSVIq1BL04eOH8pidQU7V21D5rtdxREREUlZw7zp20o/s3AKvo3hm6OxLANg6/x8eJxGRZJVQoWZm55jZGjNbb2a3dDD8SjNbFu/eMLNpXR/VW7kZAXzTr6DV+alfcI/XcURERFJWYf0mKjOHeR3DUyUjJ7DJN5y88me9jiIiSeqIhZqZ+YHbgXOBicBHzWxiu9E2AXOcc1OB7wF3dXXQZHDZnON4IXocLLsPIq1exxEREUk50UiEweEKGvJHeR3FczsHnc645hXU7NnldRQRSUKJHFGbCax3zm10zrUA9wMXtR3BOfeGc+7AQ8bmA0O6NmZyGFqUzfqSi8lp3Ufz6qe9jiMiIpJyKrdtJNuasX7jvI7iuaIZFxGwKOtef8TrKCKShBIp1EqArW3eV8T7HcongaeOJVQyO+Gsy9jlCql85W6vo4iIiKScyo3LAMgbMsnjJN4bM2MOuynEt/ZJr6OISBJKpFCzDvq5Dkc0O51YofbVQwy/3swWmdmiqqqqxFMmkRNG9uOVrLMYXPkK0ZodXscRERFJKQ3bVwEwcFTvvePjAT6/n41FH2Bs7Vs0NzV4HUdEkkwihVoFMLTN+yHA9vYjmdlU4G7gIufcno5m5Jy7yzlX5pwr69ev39Hk9ZyZUXjytfiJsukFHVUTERHpDNu9ln3kUdT/cCfn9B4Zky8g1xpZMz9tT0YSkaOUSKG2EBhjZiPMLARcATzedgQzGwY8DHzcObe262MmlzknnsTbNoHsFfeB6/DgooiIiHQgr3YjO4O9+46PbY2bfQENLoPGFf/yOoqIJJkjFmrOuTBwI/AMsBp40Dm30szmmdm8+GjfAvoCvzWzpWa2qNsSJ4FQwEf1hCsZFNnG2vk6r1xERCRRg1q3UJs30usYSSMzO5c1OWWU7n4ZF416HUdEkkhCz1Fzzj3pnBvrnBvlnPtBvN+dzrk7468/5Zzr45ybHu/KujN0Mph5/ieoJpfqV3/ndRQREelmCTxPdLyZvWlmzWb2lc5M25vsq9pBH/YT7TvW6yhJJTz2PAawh3VLX/E6iogkkYQKNXm/nJxcyksuZHr9a6xev8HrOCIi0k0SfJ7oXuDzwE+PYtpeY8eGdwDIGjzB4yTJZeypl9Pi/OxdcL/XUUQkiahQOwajz7uJkEVY/eQdXkcREZHuk8jzRCudcwuB1s5O25vUblkOwIBR070NkmQKivqxOruM0l3P6fRHETlIhdoxyC2ZSEX+DI7f/Rhrd9Z4HUdERLpHZ58nelTTpsMjbI6ochX7yWbAkFFeJ0k6LeMvZiC7WbPkRa+jiEiSUKF2jAo/8BmG+yp57l8Peh1FRES6R8LPEz2WadPhETZHkrd/HduCpZhP/360N27O5bS4ANUL9f+EiMTom/IY5c74CA2BAkZufpD1lXVexxERka6X0PNEu2HatOKiUUpaNrI/f4zXUZJSfmFfVubMZMSu54hGIl7HEZEkoELtWAUysOkf44O+xfzxiVe9TiMiIl3viM8T7aZp00rVjs0UUA/9e+29VI4oMv4iBrCHtYv+z+soIpIEVKh1gaxTPov5A8zeeBtLtuzzOo6IiHShRJ4namYDzawC+DLwTTOrMLP8Q03rzSfx1s51SwDIHTrV4yTJa9ycy2h2QaoX6fRHEYGA1wHSQuEwoid9gQtf+zHfefQBZtz0Gcw6uixBRERSkXPuSeDJdv3ubPN6J7HTGhOatjdqqFgGwJBxx3ucJHnlFRTxdu4sRlU9TzQSwef3ex1JRDykI2pdJDTny9RmDeby3b/h5Xd3eB1HREQkqfirVlNJEQV9B3gdJalFJl5MP/bx7sLnvI4iIh5TodZVgllknv8jxvu2svrxnxONJnpDMBERkfTXp249OzNHeB0j6U049VIaXYjahfd5HUVEPKZCrQsFJ32Iyv4nc2XDvTy1YJnXcURERJJCJBxmSHgLDQVjvY6S9HLyClmZ/wHG73mO5qYGr+OIiIdUqHUlM4ov+SVZ1kLwua9T39TqdSIRERHPbdu4gkxrxT9ostdRUkJG2VUUUM/KFx/wOoqIeEiFWhfz9R9L5YwvcHb0NV6//8dexxEREfHc7o1LASgsneZtkBQx8eQLqaQI/zKd/ijSm6lQ6wYlH/omK3NP5LRNP2Pb8le8jiMiIuKp5m0riDpj6NgZXkdJCf5AgA2DP8SkhoXs3rnF6zgi4hEVat3B56P/NX+mkiIyH70OV1fldSIRERHPZOxdwzbfIDKzc72OkjJKTruOgEVZ//wfvY4iIh5RodZN+vUbyMKZt5EbrmbvX6+GaMTrSCIiIp7o17CequxRXsdIKcPGTmdNYDwDNj6Mi0a9jiMiHlCh1o0uOOdcbs/+DH13vUHr/Lu8jiMiItLjmhrqGBzdQXPReK+jpJzqcZcyIrqZ9cte9zqKiHhAhVo3Cvp9nPgfX+LlyFSiz38XarZ5HUlERKRHVaxbit8cGYMneR0l5Yz/4LU0uyB7X/+z11FExAMq1LrZiaOLWTDpm0QjYaof/pLXcURERHrUvk1LASgepRuJdFZBn2JW5H+AcVVP65lqIr2QCrUeMO/iM/hD4AoKNz9D64rHvI4jIiLSYyI7VtDsgpSM1DPUjkbohGsppI7lz97jdRQR6WEq1HpAfmaQyf9xC6uiw2l6/D+hab/XkURERHpEds1atgaG4Q8EvI6Skiaf8iG2+ErIW/Ynr6OISA9TodZDTptYwjOjvkZO8272/PO/vY4jIiLS7Vw0ypCmdezNG+d1lJRlPh/bx1zFuPAa1i552es4ItKDVKj1oE9c+h/8wzeXwpV/oXnbcq/jiIiIdKudW9dRxH7cYF2fdiwmnTePepdJzcu/9TqKiPQgFWo9qDA7xOAPf5dal0XFfV8E57yOJCIi0m12rH4TgD6jZ3mcJLXlFRSxot95TK3+P/ZW6g7SIr2FCrUedsrUcSwY/hlG1S3i7efu9TqOiIhIt2nespgW52f4xBO8jpLyBp55IxnWypqndFRNpLdQoeaB06/6Gpv9wyl+47vs2FPtdRwREZFukbdnGZsDI8jIzPY6SsobPuF4VmRMZ8SmBwi3tngdR0R6gAo1D4RCIUIX/Iih7OLFP99KJKpTIEVEJL24aJRhzWvZW6gHXXeVluM+xUCqWPbCA15HEZEeoELNI4NmnMv2AWdw0f6/8bvHXvA6joiISJfatnEV+TRgupFIl5l6xuXspB9Zi36Li0a9jiMi3UyFmocGX/ELfIEgc97+Ek8s3uB1HBERkS6zc03sRiJ9x+hGIl0lEAyxefwnmdC6ilXzn/Y6joh0MxVqXupTSuDSPzDBt4XWx77Aym3VXicSERHpEuEti2lyQYaNP97rKGll2oU3sZtCoi//xOsoItLNVKh5LDj+HBpPupmLfa/yzJ+/z956XSAsIiKpL3/fCjYHRxEMZXgdJa1kZueyftQ1TGleogdgi6S5hAo1MzvHzNaY2Xozu6WD4ePN7E0zazazr3R9zPSW88GvUTP0TG5q+SO3/eFPNLVGvI4kIiJy1CLhMMOb11GtG4l0i8kXfYkacqh//odeRxGRbnTEQs3M/MDtwLnAROCjZjax3Wh7gc8DP+3yhL2Bz0fBx/5Ic95QvrbnG/ztD78gqjtBiohIiqpYv4wca8I3RKc9dofc/D6sGnYlMxreYNPKBV7HEZFuksgRtZnAeufcRudcC3A/cFHbEZxzlc65hUBrN2TsHbIKyZ33PPsKJ3Pdzu/xxl1fAN3RSUREUlDlu7EbifQfN9vjJOlr4kVfod5lsufpH3kdRUS6SSKFWgmwtc37ini/TjOz681skZktqqqqOppZpLfcfgy86RkW9/0Qp+y8h/LffhhaGrxOJSLS6yVwCYCZ2a/iw5eZ2XFthpWb2XIzW2pmi3o2uTei25bQ4DIYMmaa11HSVkHfASwbfAkz9r9A+epesVmJ9DqJFGrWQb+jOi/POXeXc67MOVfWr1+/o5lF2rNABtM/+xceLL6RYVUvU3XHedBY7XUsEZFeK8FLAM4FxsS764E72g0/3Tk33TlX1t15k0HBvpWUh8bgDwS8jpLWJvzHf1NvWdQ8/jWvo4hIN0ikUKsAhrZ5PwTY3j1xBMDv93HhZ77L7cXfoGDvMqrvmAt1OgIpIuKRI14CEH//FxczHyg0s0E9HTQZtLY0U9q6nv1FU7yOkvYKiweyatSnmdb4FitefczrOCLSxRIp1BYCY8xshJmFgCuAx7s3lmQG/Xx63pf5efF3yKjZSN2dH4TqrUeeUEREuloilwAcbhwHPGtmi83s+kMtJF0uD9iy5m0yrZXA0OOOPLIcs+mXfJUd9CPrpVuJRnTXaJF0csRCzTkXBm4EngFWAw8651aa2TwzmwdgZgPNrAL4MvBNM6sws/zuDN4bZAb9fP4zN/A/xf9DtLaSurs/BI37vI4lItLbJHIJwOHGOdk5dxyx0yM/Z2andrSQdLk8YPfKFwEYPKnDjyldLDMrh21l/8WoyEYW//NOr+OISBdK6DlqzrknnXNjnXOjnHM/iPe70zl3Z/z1TufcEOdcvnOuMP56f3cG7y2yQwG+ev21/KzvdwjVbmHn7y+FsB6KLSLSgxK5BOCQ4zjnDvysBB4hdipl2gpteZXtNoDBI8Z7HaXXOO7cT7IuMIZhS39GU0Od13FEpIskVKiJt3IyAtwy75P8ud/NDNy7kFV3fwqnW/eLiPSURC4BeBy4On73x9lAjXNuh5nlmFkegJnlAGcDK3oyfE+KhMOMalhKRWGvuGdK0vD5/bSc8V0GsIe3H/ie13FEpIuoUEsRWSE/n7jhqzxTfA0Tdz7GC3/4uh6KLSLSAxK5BAB4EtgIrAd+D3w23n8A8JqZvQO8BTzhnHu6Rz9AD9q4/A3yqcc36jSvo/Q6k046jyW5cziu/A9sWbvU6zgi0gVUqKWQoN/HWTf8kuV9zuLMbXfwwG//m/rmsNexRETSXgKXADjn3Ofiw6c45xbF+290zk2Ld5MOTJuu9ix/DoDSsnM8TtI7DbvqNzRZiLq/f043FhFJAyrUUozP72PyZ/+XLf1O46O7f83ffnkz26obvY4lIiJC9vY3KPcNpXjgMK+j9ErFA4exZtotTGxdwcKHf+F1HBE5RirUUpAFMxk27x9UDj2XTzf+kcd/9QUWbdrjdSwREenFWpqbGN24nF19Z3kdpVc74aIbWZExnYkrfkrltk1exxGRY6BCLVX5g/S/9n/ZP+4Sbog+QPkfP8Ffn1uAc7puTUREet76t18i25oJjTnd6yi9mvl89Ln8twSIsO3ez+rmYyIpTIVaKvMHyL/89zTN+jwf9r/Gh1+7kEdv+yLVNdVeJxMRkV6mZtX/EXHGyLK5Xkfp9UpGTuKdsTcyo+EN3nro517HEZGjpEIt1fl8ZJ77PXw3vsXuASfz4eo/0/qLGWx46tcQafU6nYiI9BIFO95gY3A0BUWp+7DudDLzim+yLPMEpq/4Ievfed3rOCJyFFSopQkrHk3pZx9m/fn/YJevH6MWfJO9P5pGy5L7IKo7P4mISPdpqKthdMtqdvfT9WnJwuf3M+S6e6ixPDIf/SS1NXu9jiQinaRCLc2MPuEsRn71df535E/Y0RQg9Pg86n43F/Zv9zqaiIikqfWLnidkEXLGneF1FGmjqH8Je869k4HRXaz7/bW6Xk0kxahQS0PZGUGuuvp69l31PN8L3ITtXEbdr06kbtXzXkcTEZE0VL/mBVqcn9FlH/Q6irQzYdZcFo66kePqXmbB/Wn9GD+RtKNCLY2dMrY/X7r5Vu6Z/Ge2t+SS/eAlrLzv60TDeki2iIh0nYG7XmN9aALZuQVeR5EOzLryVt7OPpmZa37Gkqf/7HUcEUmQCrU0l5sR4LOXnkf4k8/zcsbpTFpzOyt+dDpvr1ztdTQREUkDG1csYES0nNrRH/I6ihyCz+9n/OceYG1wPJPe/AqrFzzjdSQRSYAKtV5i4vBBzPmvh1g47fuMaV3DsAfP4ld33s7Gqjqvo4mISAqrfO0eWp2fsWdc43UUOYysnDwGznuUXf7+DH7qE2x+d4nXkUTkCFSo9SI+v48TPnwTdv1LuJwBfH7n11nxq0v51Z/+yiYVbCIi0kmRcJiRO59iZc5M+vQb5HUcOYLC4oEEPv4wrQTJuP9Stm1c6XUkETkMFWq9UObgiRR/6TUaTvgcZ4fe4fObb6T517N5+M5vsWmdvrRFRCQxq954gv7sJTL5cq+jSIIGjxhPzUfuI4NmQn85n/LVi7yOJCKHoEKttwpmkX3+/yPzv9ay/6yfUpCbxUd23saIe09i1/cnsvNvn8VtfgOc8zqpiIgkqabFf6PWZTHptEu9jiKdMGrqSdRc/igABQ9czLqlr3obSEQ6pEKtt8vIJf/kTzPo5reovu4NXhr5FdaEB5K75iHsT+dSddscmpc/Cnr2ioiItNFYX8vE6pdYXXQGmdm5XseRTiqdUEbL1U/QaFkMeuRSVrz+T68jiUg7KtQkxozCYZM47er/ZuY3nuOJua/wm6x5NO7dTsZD11D1o2lsfu0BPSxTREQAWPnC38ixJnLKrvQ6ihylkpGT8H/yaXb7ixn/7NXMv/e7audFkogKNXmfzKCfy08ax+f+64dUXvsG9wz+FtVNUYY/fz2rfnASj/3rMSr3N3kdU0REPBRc+Xd2UsyE2ed4HUWOwYAhoyj+4qssyz2Z2et+xpJf/AcNdTVexxIRVKjJYZgZZSP7c831/0m/mxcyf9K3GBzdyUWLrmb9T0/n7p9/g7+/tJjKWhVtIiK9ye6dW5jUuJhNg8/D5/d7HUeOUW5+H2b85+O8OeJGpu9/kcqfn6Lr1kSSgDmPbhZRVlbmFi3SnYZSTnMte164DVv2IEWNm4k44203hursUnIHjWH46EkMHDcL6zsKzLxOKyJJwswWO+fKvM6RKpK9jVxw+ycpq3yIbVe+xLCx072OI11o+SuPMPCFL9HH1bCw5CpmfPyHZGbleB1LJG0drn1UoSZHxzmoXMWetx6gee2LZNVtoY+rPjh4f6Av9QNnUTj5g2RNvwQyC7zLKiKeU6HWOcncRm5es5SSv53O4uIPMeumv3gdR7pBzb7drLnnJmZWP8kWXwn7z/ghk0+50OtYImlJhZr0iJ27d7NoyRL2rX2dPlWLOJ5VDLK9NJPBu8Vn0TL9GsbOOI2CnJDXUUWkh6lQ65xkbiPf+dHZjGxYRstnF9F3wBCv40g3Wv7yw/R96asMdpUsyzyBnPO/z6gps72OJZJWVKhJj2uNRHl78z7WLX2VAevu58SGF8ixZjZH+7M0o4y9g08jb8JpTBo+iDH9cwn4dbmkSDpTodY5ydpGLn/lEaa8cC3zR36e2Vd/z+s40gOaGutZ+tBPmLD+LvJcA0sKzqTPWTerYBPpIirUxHNNdfvY9trf8K17msF73yLDxW5Ast9lUUMeTcFCotnF+AsGkdu3hKKSMYRGz4E+wz1OLiJdQYVa5yRjGxkJh9ny/44nwzXS96tLycjM9jqS9KCafbtZ9eB3mLb9AbKtmZWhabTOvIGpp1+mG8qIHAMVapJcWpuIlr9O9bo32Ld7Jw3VVUTqdpPRvIdi9tGX/fgstl3uCpSwvWgWTUM/QPa4OZQOGUZBdtDjDyAinaVCrXOSsY1c8PefMmvl91gy65ccd+4nvI4jHqnZW8Xqf/2KERvvZQB72EVfNg46l4EfuJYRE0/wOp5IylGhJikhGnVU7Gtk9ba97Nq0nKytrzK0egFTWpeTY80ArI4OY5V/HNGsIoI5fcjJLyI/L4c+2ZkU5WZSUFBIsP8Y6DMCAroWTiRZqFDrnGRrI9954X4mvPw51mVMYOItr2A+na7e27W2NLPs+b8RWH4fkxoWErAom3zD2TnwNPpMu4Axx5+BPxDwOqZI0lOhJimttaWZynffoGntS2Rue4PC/WvIjNTiJ3rIaSL4qAoOpip3PDV9p9EysIzQkKn0LcinODeDopwQfp8eHyDSU1SodU4ytZFLnvkrk9/4ApsDI+j/2Scp6DvA60iSZPbsqmDdC38hf9OTjG1eScCiVJPLxpwZtJTMou/E0xgxaRaBoHagirSnQk3Sj3PQUkdL3T6qaurZVVPPzppGqvfuxrd3PVn7N1DUsIkx4XUMZM/Byfa7bPa5XKrJJeiDbF8rWdaK36AlkEc4lE8ko4CW/FJaiidA/4lkDBxPbk4O+VlBckJ+TM+HE+k0FWqdkyxt5OIn7mbaWzezITiWQTc+SX5hX68jSZKr2VvF+jcfI7r2WUr2v81gVwlAg8tga3AE1QXjYeBU8odNZsCIyfQpHqQjtNKrHXOhZmbnALcBfuBu59wP2w23+PDzgAbgWufcksPNM1kaIUl/jbu3ULdhPs07VtFauxvXsAdr3EdzBOqjAeojQZrDUULhOrKjtRRSxzDbRYaFD85jn8ulyhWwmwKCPsi1FrKtmQxrxQf4LNbVB4uozSqhIXsITTklhHMHEc0djMsbRGZGkCwLk+ULk2mtZEYbyXBNZESbCGTnEczpiy+nCLL7gl/X4Ul6SfVC7VjawSNN2xGv28h3Fz5P/cu/Znrty6wJTWLYTf8iN7+PZ3kkde2q2MDWd14gvHkhedWrGNqygXwaDg6vIYddgRLqMgfRkjsE6zOMYGEJ2X0HU9BvCH36D9EDtyWtHa59POLJw2bmB24HzgIqgIVm9rhzblWb0c4FxsS7WcAd8Z8inssqHkZW8bCExo1GHbVNYXbVNdC0aw3RnSuxvRuw+kqCjVUMa9pNxBkNLo/dhGh0QVojjnAUwpEofVr3Mrj+HcbwAkGLHFXeqDP2WCGVVsxuX1/CloHPB2ZGiAh5ro5c6siONoBBxIJELUCLP5vaYDF1of7Uh4oJB7KJ+rNwgQx8BlmRWrIitWRG6wlEWwgQxu/COF+QlowiWjOKaM0sIhLKJxzMIxrKw/wBgpHGeNdAIFJPMNxAMFyPEcUFc4lm5OKCuUQyC4lm9iGa0QcCmfhcON61EmitJ9BSTaBlPxZtBfNj/gD4g7iMQlxWH6KZfbCMHAwwA8OwaAu+5v34WvZjrQ34XASLhjEcLpQbe5B6RgGEcsFn8eli6wrnsHATtNbjCzdiLQ0QacYCGbhQDgSzsYxcCGRgxI6SHjhYavGO1gZoroWWesznB58ffAEslAUZ+bF+hxJuhuY6iIbBRSAagUAGZORBIPPfC+twI4hAuCk2j3ATmA+C2bHOf4Svbedi07TUg4uCL7ae8Wcc+bpN56C1ESItgPt3v8xC6MV7vI+lHUxwWk9FwmF2VWxgd/kKGravps/GxxkfXsN+slk46GNMvep/yM4t8DqmpKgBQ0YxYMgo4NMAuGiU7ZvXUrVpGY073sX2rienbjP969fSv/Z1QjvD75tHg8ugxvKp9+fTFMiLnQETb6cI5UIoB8vIxULZ+ENZ+DNy8Icy8Qcz8QczCGRkEwiGCIQy8AfiP/1B/MEQgUAAfyCI3x/A7w/o6J4klUSu8pwJrHfObQQws/uBi4C2jcxFwF9c7PDcfDMrNLNBzrkdXZ5YpBv5fEZBdpCC7ALoPxOmzDyq+bS0tLJ/7zZaqysI79tKdP8OwhFHCwGaowGaLEgTWTRYJg0uBM31+Jv3EWiuJrN5D7nNO8lr3sW41h34XBiiDgeE8VNnuey1Ajb7BuOcwxdpxU+YnJZ6+jasYiyvkUXLIbO1Oj9NhAjjJ4yfIGEKrf4o11jXijojgo8osYYyw1oTnrbRhWgiRAsBsmghmyYCdujrGA9odgFqyaKRDPxECdFKiDBZNB92+qgzasmkniyiBwo9HBm0kkvje47Ittfi/NSTRSuBg52fCDk0kU0TmYf53C3OTxMZNMY7gBCtZMS7LJrwW8dnShxYbgOZRPDFC9IoAaLk0Ej2Iabd9akl8X+0eq2jbgeB0gSm7XILfn01A/b9+8SW2BbqMBzmHH4ihFwzIVrIcs0MtgiD4+NW2CAWjL+FyeffwOy8wu6MKb2Q+XwMHjGewSPGv29YNBJh964Kqqu2Ur+nguZ9O4jU7sIa9+Fv2keoZR8Z4TpyGzeTXV9Htot9b/kO8Z13NCLxdsjhi/80Ihb7GWubjGjsLwk4+FfV7rXhAGcHd/vF3nNgB917d9Q5Dr3jzrXZqXe48drPs6d5cyGV93b2O4XZN9zZbfNPpFArAba2eV/B+4+WdTROCfCeQs3MrgeuBxg2LLEjHCKpKBQKEhpYCgNLe37hzkFTTexoULgp9jgE54hkFBDJKCDsyyTqgKiDqKPZOba3tuAa9kL9bmjejzXvh6YaXDRMJJBDOJBN2J9FOJBzsIs48LXUY611WEsd/uZqAs3VBJr3YZFmohY42LUG82gJ5NIcLCDiC0I0grkwhFsJtu4n1LKPUEs1/nAD5qKxI0HO0RLIoSWQT0swj7Avg0h8fs5BIFJPqLWWUOt+gpEG/JEm/NFm/JFmqvxZtPqzaPHn0OrPotWfSdiXRdhCsaOJ0QYC4QNHCusIRRoIhhuI+AJELETEFyTsy6DZnxvL4MvGXBSfi+BzYQLRJjLCtYTCdYQi7y1ywxaiJZATm9afTdT8OHxghj/aSijSQChSTzBSjz8axu9a8EdbiFqA3f5sWvzZtPoyCfsy4p85iOEIRJtieaNN8ddNBKONgLHfFyJiIcK+EC2+2Gdv9WXhsNi/Gi7872VHGwlG6vG5CC7+z4czPy2+LFriy49YkIP/XJgxM7fXn/J2LO1gItMCXdtGurwh7G3e134JsX/0zHAWIBrIxPkziAaz8ReNIGfweAaMnExJ/yEM0VEF8YDP76d48HCKByf+DFUXjdLYWE9DXQ3NjfW0NtXT0lRPuLmBSEsTkdZmoq2NRMOtRMMtuHALLtKCi4RjZzxEWiEawblI7H00Em+DIlg0Ajhw0TZtU/TAgmPlmHPxcWKlynv6xcsXc/9+/f4P8O/+9r5xXIfjtff+6Xqa18v3UP7gI49zDBIp1Doq0dv/RhIZB+fcXcBdEDv/PoFli0hnmUFWYayL88W7Q1/5lgl984nt/BeRdo6lHUyofYSubSNnX/v/jmVykZRhPh9ZOXlk5eR5HUWkyyVSqFUAQ9u8HwJsP4pxREREUtGxtIOhBKYVERF5n0TObVgIjDGzEWYWAq4AHm83zuPA1RYzG6jR9WkiIpImjqUdTGRaERGR9zniETXnXNjMbgSeIXZr4T8651aa2bz48DuBJ4ndkng9sdsSf6L7IouIiPScY2kHDzWtBx9DRERSjB54LSIi3S7Vn6PW09RGioj0DodrH3VbJxERERERkSSjQk1ERERERCTJqFATERERERFJMirUREREREREkoxnNxMxsypg8zHMohjY3UVxulsqZYXUyptKWSG18ipr90mlvF2Vdbhzrl8XzKdXOMY2MpW2L0itvKmUFVIrbyplhdTKq6zdpyvyHrJ99KxQO1ZmtihV7iCWSlkhtfKmUlZIrbzK2n1SKW8qZZWYVPudpVLeVMoKqZU3lbJCauVV1u7T3Xl16qOIiIiIiEiSUaEmIiIiIiKSZFK5ULvL6wCdkEpZIbXyplJWSK28ytp9UilvKmWVmFT7naVS3lTKCqmVN5WyQmrlVdbu0615U/YaNRERERERkXSVykfURERERERE0pIKNRERERERkSST1IWamZ1jZmvMbL2Z3dLBcDOzX8WHLzOz47zIGc8y1MxeNLPVZrbSzL7QwTinmVmNmS2Nd9/yIms8S7mZLY/nWNTB8GRat+ParLOlZrbfzL7YbhzP1q2Z/dHMKs1sRZt+RWb2nJmti//sc4hpD7uN92Den5jZu/Hf9SNmVniIaQ+73fRQ1lvNbFub3/V5h5g2WdbtA22ylpvZ0kNM29PrtsPvrGTeduW91EZ2n1RpI5O9fYwvP2XayFRqHw+TNynbSLWPR8k5l5Qd4Ac2ACOBEPAOMLHdOOcBTwEGzAYWeJh3EHBc/HUesLaDvKcB//J63cazlAPFhxmeNOu2g+1iJ7GHAybFugVOBY4DVrTp92PglvjrW4AfHeKzHHYb78G8ZwOB+OsfdZQ3ke2mh7LeCnwlge0kKdZtu+E/A76VJOu2w++sZN521XXud5BM3+NqI3tsm0iq9jG+/JRpI1OpfTxM3qRsI9U+Hl2WZD6iNhNY75zb6JxrAe4HLmo3zkXAX1zMfKDQzAb1dFAA59wO59yS+OtaYDVQ4kWWLpI067adM4ENzrnNXgc5wDn3CrC3Xe+LgHvir+8BLu5g0kS28S7XUV7n3LPOuXD87XxgSHfnSMQh1m0ikmbdHmBmBlwG3NfdORJxmO+spN125T3URnoradZtG0nXPkJqtZGp1D5CarWRah+PTjIXaiXA1jbvK3j/l3oi4/Q4MysFZgALOhh8opm9Y2ZPmdmknk32Hg541swWm9n1HQxPynULXMGh/5CTZd0CDHDO7YDYHzzQv4NxknUdX0dsT3FHjrTd9JQb46eh/PEQpx4k47r9ALDLObfuEMM9W7ftvrNSedvtTdRGdq9UbCNTpX2E1P2eSYX2EVKvjVT7eAjJXKhZB/3aP0sgkXF6lJnlAg8BX3TO7W83eAmxUxKmAb8GHu3heG2d7Jw7DjgX+JyZndpueDKu2xBwIfD3DgYn07pNVDKu428AYeDeQ4xypO2mJ9wBjAKmAzuInS7RXtKtW+CjHH5voSfr9gjfWYecrIN+Xq/f3kZtZPdKqTYyDdtHSL51nArtI6RmG6n28RCSuVCrAIa2eT8E2H4U4/QYMwsS+4Xe65x7uP1w59x+51xd/PWTQNDMins45oEs2+M/K4FHiB2qbSup1m3cucAS59yu9gOSad3G7TpwGkz8Z2UH4yTVOjaza4ALgCtd/ETr9hLYbrqdc26Xcy7inIsCvz9EhmRbtwHgI8ADhxrHi3V7iO+slNt2eym1kd0oBdvIVGofIcW+Z1KlfYwvP6XaSLWPh5fMhdpCYIyZjYjvKboCeLzdOI8DV1vMbKDmwCHJnhY/v/YPwGrn3M8PMc7A+HiY2Uxi639Pz6U8mCPHzPIOvCZ2oeyKdqMlzbpt45B7XJJl3bbxOHBN/PU1wGMdjJPINt4jzOwc4KvAhc65hkOMk8h20+3aXQfy4UNkSJp1G/dB4F3nXEVHA71Yt4f5zkqpbbcXUxvZTVK0jUyl9hFS6HsmldrH+PJTrY1U+3g4rgfvTtPZjthdldYSu3vKN+L95gHz4q8NuD0+fDlQ5mHWU4gd2lwGLI1357XLeyOwktgdYOYDJ3mUdWQ8wzvxPEm9buN5sok1LAVt+iXFuiXWOO4AWontSfkk0Bf4P2Bd/GdRfNzBwJOH28Y9yrue2DnVB7bdO9vnPdR240HWv8a3yWXEvvwGJfO6jff/84Fttc24Xq/bQ31nJe22q+59v0O1kd2TNaXaSJK4fYwvP2XayENkTcr28TB5k7KN7ChrvP+fUft4yM7iMxQREREREZEkkcynPoqIiIiIiPRKKtRERERERESSjAo1ERERERGRJKNCTUREREREJMmoUBMREREREUkyKtRERERERESSjAo1ERERERGRJPP/AQLOK1tIKDHeAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xx = np.linspace(0.1,20,100)\n",
    "a = 1     #shape parameter\n",
    "b = 2     #scale parameter\n",
    "c = 9     #shape parameter\n",
    "d = 0.5   #scale parameter\n",
    "lim_ab = 24\n",
    "lim_cd = np.inf\n",
    "cf_gamma_ab = partial(cf_gamma, a=a, b=b)   # function binding \n",
    "cf_gamma_cd = partial(cf_gamma, a=c, b=d)   # function binding \n",
    "\n",
    "fig = plt.figure(figsize=(15,4))\n",
    "ax1 = fig.add_subplot(121); ax2 = fig.add_subplot(122)\n",
    "ax1.plot(xx,ss.gamma.pdf(xx, a, scale=b), label=\"pdf Gamma\")\n",
    "ax1.plot(xx,[Gil_Pelaez_pdf(i,cf_gamma_ab, lim_ab) for i in xx], label=\"Fourier inversion\" )\n",
    "ax1.set_title(\"Comparison Gamma. shape=1, scale=2\"); ax1.legend()\n",
    "ax2.plot(xx,ss.gamma.pdf(xx,c, scale=d), label=\"pdf Gamma\")\n",
    "ax2.plot(xx,[Gil_Pelaez_pdf(i,cf_gamma_cd, lim_cd) for i in xx], label=\"Fourier inversion\" )\n",
    "ax2.set_title(\"Comparison Gamma. shape=9, scale=0.5\"); ax2.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Comments:\n",
    "\n",
    "If you try to increase the value of `lim_ab = 24`, you will see that python will raise:     \n",
    "`IntegrationWarning: The maximum number of subdivisions (50) has been achieved.`\n",
    "\n",
    "When we solve this kind of problems we have to be careful, and analyze them case by case.\n",
    "\n",
    "For $c=9$ and $d=0.5$, we could set `lim_cd = np.inf` because the integrand has a good behavior.    \n",
    "But for $a=1$ and $b=2$ the integrand is not so nice. There are many oscillations (originated by the term $e^{-iux}$) that create the problem.\n",
    "\n",
    "Let's have a look at the plot of the integrands: (at the point x=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "u = np.linspace(0.1,20,100)\n",
    "x = 3\n",
    "f = lambda u: np.real( np.exp(-u*x*1j) * cf_gamma_ab(u) )  # integrand\n",
    "g = lambda u: np.real( np.exp(-u*x*1j) * cf_gamma_cd(u) )\n",
    "\n",
    "fig = plt.figure(figsize=(15,4)); ax1 = fig.add_subplot(121); ax2 = fig.add_subplot(122)\n",
    "ax1.plot(u, f(u)); ax1.set_title(\"Integrand: shape=1, scale=2\")\n",
    "ax2.plot(u, g(u)); ax2.set_title(\"Integrand: shape=9, scale=0.5\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Poisson"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "k = np.array(range(20))\n",
    "lam = 4\n",
    "cf_poisson4 = partial(cf_poisson, lam=lam)   # function binding to lam=4\n",
    "\n",
    "fig = plt.figure(figsize=(15,4))\n",
    "ax1 = fig.add_subplot(121); ax2 = fig.add_subplot(122)\n",
    "ax1.plot(k, ss.poisson.pmf(k, 1), linestyle=\"None\", marker='p', label=\"pmf Poisson\")  # with lam=1 \n",
    "ax1.plot(k, [Gil_Pelaez_pdf(i,cf_poisson, np.pi) for i in k], \\\n",
    "         linestyle=\"None\", marker='*', label=\"Fourier inversion\" )      # lam=1 by default\n",
    "ax1.set_xlabel(\"k\"); ax1.set_ylabel(\"P(X=k)\")\n",
    "ax1.set_title(\"Comparison: Poisson pmf - Gil Pelaez, lambda = 1\"); ax1.legend()\n",
    "ax2.plot(k, ss.poisson.pmf(k, lam), linestyle=\"None\", marker='p', label=\"pmf Poisson\")\n",
    "ax2.plot(k, [Gil_Pelaez_pdf(i,cf_poisson4, np.pi) for i in k], \\\n",
    "         linestyle=\"None\", marker='*', label=\"Fourier inversion\" )\n",
    "ax2.set_title(\"Comparison: Poisson pmf - Gil Pelaez, lambda = 4\"); ax2.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Comments:\n",
    "\n",
    "In this case, we considered only the integration in the region $[0,\\pi]$.\n",
    "\n",
    "As you can see in the plots below, the integrand is an even periodic function. Therefore, if we had integrated on $[0,\\infty]$ the integral would have been infinite.\n",
    "\n",
    "The two plots below consider the characteristic function with $\\lambda=1$.     \n",
    "The integrands inside the `Gil_Pelaez_pdf` function are functions of $u$ with fixed values of $x$. For this exaple I chose x=1 and x=10 ($x$ corresponds to $k$ in the plots above).     \n",
    "The characteristic function of a Poisson random variable does not have a damping factor. It is a pure periodic function. For this reason it is helpful to define it only on $[-\\pi,\\pi]$.    \n",
    "The integrand of the Gil Pelaez function simply inherits these features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Tj8q+lRmCtdwH3wBgIc5549yznsA3pU8tnJ46so+HrrYKvo0SgvOOT740AbCKC76VEqLdi9y320D0A0jfOThS0WfRqnxhXM7uLBdrTh9FDVq1wN4ivx/JtlmgDH2WsbYvYyxezc2Nkbw0pNBuxfh7/3qPfjxd30G3/GmD+PKXq/oUyod3nHP43j1r30Ur3rbR/E7H3uy6NMpHTZaXXz7mz6Mf/y7n8arfvWj7mZkwc+974v4wd+6F9/+5g/hLx9cL/p0SoeH11v4tl/+EF7/O5/CP/ofnwTnvOhTcsiQdx888P0RmN57JAB8w8//JV76ix8s+jRKiz/9wkV87298HO+454miT6W0+LZf+Wv83bfeU/RplBa/8ucP47t+/WP45BOD1oxmF5xzvOKX/xrf9isfKvpURopRJGrMss0aQXDO38Y5v4tzftfa2toIXnoy+N2PP4kHL7bwky+5Axd2OnjLBx4u+pRKhe39Pv7T+x7E1z39GF74tKP42bsfwG43LPq0SoU3/cWXcGm3i598yR34wvkdvOvjLpmlePLyPn7trx/FK597HW4/sYh/97+/gCh2iQjFz/3JF8EY8I++4Wn4q4c28GcPuGS2RMi7Dx74/ghM7z0SAOS6gWOM7Hjy8r74fWW/4DMpLx7Z2MN9Z52iIg+SsT6z2S74TMqJnbaIOy/tdgs+k9FiFInaGQA3kv9vAHBuBM9bCnDO8Y57HsdX3nwEP/6S2/GKLz+N//mJp9AL3c1I4o/uO4fdbog3vuxZ+OcveyZa3RDv+czZok+rNOj0I/zep87i259zHX78JbfjeTet4p2OdVTwzo89AZ8x/IuXPws/9k2347FLe7jnESejlbi408FffHEd3/s1t+CffeszcHqliXd+1K3Mlwh598FK3x9t2Os6tYANzJayOzgcAnKFp+viTyuqWlYyikTtvQC+N3G9eiGAbc75+RE8bynw0MVdPH55H9/5lTcAAL7juddjpxPiI484nbDEez59DrefWMSXXb+M5924iluPL+D9918s+rRKg796aAO73RDf8TyhePqO516Ph9d38fD6bsFnVg5wzvEnnz+Pb7hjDadWmviWO09ivu7jj++rzNfINeN/f/YcYg787edfj8D38MrnXo8PP3wJrYremKYQeffBTwC4nTF2K2OsDuBVyWMri1bXzUkbpMok8FzGZgNl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\n",
      "text/plain": [
       "<Figure size 1080x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "X1 = 1; X2 = 10\n",
    "y = np.linspace(0.-15,15,2000)\n",
    "ff = lambda u: np.real( np.exp(-u*X1*1j) * cf_poisson(u) )  # integrand\n",
    "gg = lambda u: np.real( np.exp(-u*X2*1j) * cf_poisson(u) )  # integrand\n",
    "\n",
    "fig = plt.figure(figsize=(15,5)); ax1 = fig.add_subplot(121); ax2 = fig.add_subplot(122)\n",
    "ax1.plot(y, ff(y)); ax1.set_title(\"Integrand at x=1, for lambda = 1\")\n",
    "ax2.plot(y, gg(y)); ax2.set_title(\"Integrand at x=10, for lambda = 1\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec3'></a>\n",
    "## Option pricing\n",
    "\n",
    "Let us apply the pricing formula introduced above using the following processes:\n",
    "- Geometric Brownian motion\n",
    "- Merton process\n",
    "- Variance Gamma process\n",
    "\n",
    "These processes will be described better in the next notebooks. If you are not familiar with these concepts, have a look at the Appendix **A3**. Otherwise you can skip this part, for now. And come back again after having read the relevant notebooks.\n",
    "\n",
    "First, I have to implement $\\mathbb{Q}$ and $\\tilde{\\mathbb{Q}}$:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "def Q1(k, cf, right_lim):\n",
    "    integrand = lambda u: np.real( (np.exp(-u*k*1j) / (u*1j)) * \n",
    "                                  cf(u-1j) / cf(-1j) )  \n",
    "    return 1/2 + 1/np.pi * quad(integrand, 1e-15, right_lim, limit=1000 )[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def Q2(k, cf, right_lim):\n",
    "    integrand = lambda u: np.real( np.exp(-u*k*1j) /(u*1j) * cf(u) )\n",
    "    return 1/2 + 1/np.pi * quad(integrand, 1e-15, right_lim, limit=1000 )[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the following, I present European call option values, with the following parameters:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "S0 = 100.0      # spot stock price\n",
    "K = 100.0       # strike \n",
    "T = 1           # maturity\n",
    "k = np.log(K/S0)  # log moneyness"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Geometric Brownian motion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "r = 0.1         # risk free rate  \n",
    "sig = 0.2       # volatility "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fourier inversion call:  13.2696765846609\n",
      "Closed formula call:  13.269676584660893\n"
     ]
    }
   ],
   "source": [
    "cf_GBM = partial(cf_normal, mu=( r - 0.5 * sig**2 )*T, sig=sig*np.sqrt(T))     # function binding\n",
    "call_BS = S0 * Q1(k, cf_GBM, np.inf) - K * np.exp(-r*T) * Q2(k, cf_GBM, np.inf)   # pricing function\n",
    "\n",
    "print(\"Fourier inversion call: \",call_BS)\n",
    "print(\"Closed formula call: \", BS_pricer.BlackScholes(\"call\",S0,K,T,r,sig))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Merton process"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# characteristic function of the Merton process at time t\n",
    "def cf_mert(u, t=1, mu=1, sig=2, lam=0.8, muJ=0, sigJ=0.5):\n",
    "    return np.exp( t * ( 1j * u * mu - 0.5 * u**2 * sig**2 \\\n",
    "                  + lam*( np.exp(1j*u*muJ - 0.5 * u**2 * sigJ**2) -1 ) ) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "r=0.1      # risk free rate \n",
    "sig=0.2    # diffusion coefficient\n",
    "lam=0.8    # jump activity\n",
    "muJ=0      # jump mean size \n",
    "sigJ=0.5   # jump std deviation\n",
    "m = lam * (np.exp(muJ + (sigJ**2)/2) -1)     # martingale correction\n",
    "\n",
    "# Creates the pricer objects\n",
    "opt_param = Option_param(S0=S0, K=K, T=T, exercise=\"European\", payoff=\"call\" )\n",
    "Merton_param = Merton_process(r=r, sig=sig, lam=lam, muJ=muJ, sigJ=sigJ)\n",
    "Merton = Merton_pricer(opt_param, Merton_param)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fourier inversion call:  22.0163676219057\n",
      "Closed formula call:  22.016367621905697\n"
     ]
    }
   ],
   "source": [
    "# function binding\n",
    "cf_Mert = partial(cf_mert, t=T, mu=( r - 0.5 * sig**2 -m ), sig=sig, lam=lam, muJ=muJ, sigJ=sigJ ) \n",
    "# call price\n",
    "call_Mert = S0 * Q1(k, cf_Mert, np.inf) - K * np.exp(-r*T) * Q2(k, cf_Mert, np.inf)   # pricing function\n",
    "\n",
    "print(\"Fourier inversion call: \", call_Mert)\n",
    "print(\"Closed formula call: \", Merton.closed_formula() )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Variance Gamma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# characteristic function of the VG process at time t, with an additional drift mu\n",
    "def cf_VG(u, t=1, mu=0, theta=-0.1, sigma=0.2, kappa=0.1):\n",
    "    return np.exp( t * ( 1j*mu*u - np.log(1 - 1j*theta*kappa*u + 0.5*kappa*sigma**2 * u**2 ) /kappa  ) )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Creates the object with the parameters of the process\n",
    "VG_param = VG_process(r=0.1, sigma=0.2, theta=-0.1, kappa=0.1)\n",
    "# Creates the VG process\n",
    "VG = VG_pricer(opt_param, VG_param)\n",
    "\n",
    "theta = -0.1; sigma = 0.2; kappa = 0.1                         # VG parameters \n",
    "w = -np.log(1 - theta * kappa - kappa/2 * sigma**2 ) /kappa    # martingale correction w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fourier inversion call:  13.314022\n",
      "Monte Carlo call: 13.316149 with standard error: 0.002253\n"
     ]
    }
   ],
   "source": [
    "# function binding\n",
    "cf_VG_b = partial(cf_VG, t=T, mu=r-w, theta=theta, sigma=sigma, kappa=kappa ) \n",
    "# call price\n",
    "call_VG = S0 * Q1(k, cf_VG_b, np.inf) - K * np.exp(-r*T) * Q2(k, cf_VG_b, np.inf)   # pricing function\n",
    "\n",
    "print(\"Fourier inversion call: \", call_VG.round(6))\n",
    "print(\"Monte Carlo call: {0[0]:.6f} with standard error: {1[0]:.6f}\".format( *VG.MC(N=50000000, Err=True) ) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The closed formula for the VG price is also available, but it is not very reliable (it has a negative bias).  See also the comments in the notebook **3.2**.       \n",
    "For this reason I prefer to compare the Fourier inversion price with the Monte Carlo price!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Warning: infinite oscillatory integrals!\n",
    "\n",
    "The naive implementation of $\\mathbb{Q}$ and $\\tilde{\\mathbb{Q}}$ in the functions `Q1` and `Q2` uses the scipy method `quad` which is not very appropriate for infinite oscillatory integrals.\n",
    "\n",
    "A possible solution could be to set the parameters `weight` and `wvar` in [quad](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.quad.html) appropriately, or use a more advanced algorithm. However, these integrals must be treated on a case-by-case basis.       \n",
    "For more information about oscillatory integrals have a look at this\n",
    "[link](https://scicomp.stackexchange.com/questions/58/whats-the-state-of-the-art-in-highly-oscillatory-integral-computation).\n",
    "\n",
    "#### Example:\n",
    "As for the pricing problem we are considering, the naive approach above works quite well for a large time to maturity.      \n",
    "For a short time to maturity, OTM and ITM options have problems.   \n",
    "In the following plot we can see that the integrand function has different shapes for different moneyness.     \n",
    "In this example, the `quad` method produces a negative price for the call with K=120."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Strike= 105.0\n",
      "Fourier inversion Black-Scholes call:  0.005750947197630807\n",
      "BS Closed formula call:  0.005750947197631251\n",
      "Strike= 120.0\n",
      "Fourier inversion Black-Scholes call:  -1.103565016036534e-15\n",
      "BS Closed formula call:  1.4557223869346492e-20\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "S0 = 100.0      \n",
    "K1 = 105.0; K2 = 120.0        \n",
    "T_1 = 0.01           \n",
    "k1 = np.log(K1/S0); k2 = np.log(K2/S0)          # two different moneyness\n",
    "cf_GBM_1 = partial(cf_normal, mu=( r - 0.5 * sig**2 )*T_1, sig=sig*np.sqrt(T_1)) \n",
    "call1 = S0 * Q1(k1, cf_GBM_1, np.inf) - K1 * np.exp(-r*T_1) * Q2(k1, cf_GBM_1, np.inf)   # pricing function\n",
    "print(\"Strike=\", K1); print(\"Fourier inversion Black-Scholes call: \",call1)\n",
    "print(\"BS Closed formula call: \", BS_pricer.BlackScholes(\"call\", S0, K1, T_1, r, sig))\n",
    "call2 = S0 * Q1(k2, cf_GBM_1, np.inf) - K2 * np.exp(-r*T_1) * Q2(k2, cf_GBM_1, np.inf)   # pricing function\n",
    "print(\"Strike=\", K2); print(\"Fourier inversion Black-Scholes call: \",call2)\n",
    "print(\"BS Closed formula call: \", BS_pricer.BlackScholes(\"call\",S0,K2,T_1,r,sig))\n",
    "\n",
    "u = np.linspace(1e-15,100, 200)\n",
    "fig = plt.figure(figsize=(15,4)); ax1 = fig.add_subplot(121); ax2 = fig.add_subplot(122)\n",
    "ax1.plot( u, np.real( (np.exp(-u*k1*1j) / (u*1j)) * cf_GBM_1(u-1j) / cf_GBM_1(-1j) ) )\n",
    "ax2.plot( u, np.real( (np.exp(-u*k2*1j) / (u*1j)) * cf_GBM_1(u-1j) / cf_GBM_1(-1j) ) )\n",
    "ax1.set_title(\"Integrand of Q1, k={0:0.2f}\".format(k1)); ax2.set_title(\"Integrand of Q1, k={0:0.2f}\".format(k2))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec4'></a>\n",
    "# Lewis method\n",
    "\n",
    "Fourier inversion methods in option pricing allow the use of semi-closed valuation formulas for European options whenever the characteristic function of the log-price is known.\n",
    "There is a large body of literature dealing with Fourier-based pricing methods. Among the most important there are the methods of Carr and Madan (1999) [3] and Lewis (2001) [4].\n",
    "\n",
    "The Gil-Pelaez approach described above, consists in expressing the \"in the money\" risk neutral probabilities as the integral of an expression containing the characteristic function of the log-process.    \n",
    "Here I present the method of Lewis which instead provides an integral expression for the option price itself.\n",
    "The paper of Lewis can be found here http://optioncity.net/pubs/ExpLevy.pdf. \n",
    "\n",
    "**Tecnical comment** (irrelevant to the understanding of the derivation):     \n",
    "The functional space $L^2$ is not a subset of $L^1$ (see [Lp space](https://en.wikipedia.org/wiki/Lp_space)), and the definition of the Fourier transform is therefore not directly applicable to every $L^2$ function. The definition does apply, however, if a function $f$ is in $L^1 \\cap L^2$, and\n",
    "it turns out that the $\\mathcal{F}[f] \\in L^2$, and $\\lVert f \\rVert^2 = \\big \\lVert \\mathcal{F}[f] \\big \\rVert^2$ (see [Placherel and Parseval theorem](https://en.wikipedia.org/wiki/Fourier_transform#Plancherel_theorem_and_Parseval's_theorem)). \n",
    "This isometry of $L^1 \\cap L^2$ into\n",
    "$L^2$ can be extended to an isometry of $L^2$ onto $L^2$, and this extension defines the Fourier\n",
    "transform of every function in $L^2$.\n",
    "\n",
    "\n",
    "#### Derivation of Lewis formula:\n",
    "\n",
    "The Lewis approach makes use of the [Parseval formula](https://en.wikipedia.org/wiki/Fourier_transform#Plancherel_theorem_and_Parseval's_theorem), i.e. the Fourier transform preserves the inner product.    \n",
    "If we consider the log-price $X_T = \\log S_T$ and $s=\\log S_0$, the CALL option price is defined as \n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "C(S_0, K,T) &= e^{-rT} \\mathbb{E}^{\\mathbb{Q}}\\biggl[ \\big(e^{X_T} - K\\big)^+ \\bigg| \\log S_0 = s \\biggr] \\\\\n",
    "  &= e^{-rT} \\int_{\\mathbb{R}} \\big(e^x-K\\big)^+ f_T(s+x) \\,dx \\\\\n",
    "  &= e^{-rT} \\int_{\\mathbb{R}} \\mathcal{F}  \\bigg[\\big(e^x-K\\big)^+ \\bigg] \\; \\mathcal{F}\\big[f_T(s+x)\\big]^* \\; \\frac{du}{2\\pi}.\n",
    "\\end{aligned} $$\n",
    "\n",
    "Since the function $(e^x-K)^+$ is not integrable, the idea is to consider the *Generalized Fourier Transform* i.e. replace the real variable $u$ with a complex variable $z = u + iv$:\n",
    "\n",
    "$$ \\mathcal{F}\\bigg[\\big(e^x-K\\big)^+ \\bigg] = \\int_{\\log K}^{\\infty} e^{ixz} \\big(e^x-K\\big) \\, dx \n",
    "= - \\frac{K^{iz+1}}{z^2-iz} $$\n",
    "\n",
    "The integral above exists only for some $v_1 = Im[z] > 1$.      \n",
    "Using the translation property and the property of the complex conjugation of the characteristic function, we can write \n",
    "\n",
    "$$ \\mathcal{F}\\big[f_T(s+x)\\big]^*(z) = e^{-izs} \\phi_T(-z).$$     \n",
    "\n",
    "The pricing function becomes:\n",
    "\n",
    "$$ \\begin{aligned}\n",
    "C(S_0, K,T) &= -e^{-rT} \\int_{iv_1-\\infty}^{iv_1+\\infty} e^{-izs} \\frac{K^{iz+1}}{z^2-iz} \\; \\phi_T(-z) \\; \\frac{dz}{2\\pi} \\\\\n",
    "&= -K e^{-rT} \\int_{iv_1-\\infty}^{iv_1+\\infty} e^{-izk} \\frac{1}{z^2-iz} \\; \\phi_T(-z) \\; \\frac{dz}{2\\pi}. \\end{aligned}$$\n",
    "\n",
    "where we introduced the log-moneyness $k = \\log S_0 - \\log K$.    \n",
    "At this point, Lewis uses the [Residue theorem](https://en.wikipedia.org/wiki/Residue_theorem) in order to write this expression in a different form, where the integral is on the orizontal line with imaginary level $Im[z] = v_2 \\in (0,1)$.    \n",
    "The integration is made on a rectangular region containing the pole at $i$.    \n",
    "The integral is split on each side of the rectangle: \n",
    "$$\\int_{-\\infty + iv_2}^{+\\infty + iv_2} + \\int_{+\\infty + iv_2}^{+\\infty + iv_1} + \\int_{+\\infty + iv_1}^{-\\infty + iv_1} + \\int_{-\\infty + iv_1}^{-\\infty + iv_2} = \n",
    "\\int_{-\\infty + iv_2}^{+\\infty + iv_2} - \\int_{-\\infty + iv_1}^{+\\infty + iv_1} = \\; 2 \\pi i \\, Res(i) $$\n",
    "\n",
    "where the terms $\\int_{-\\infty + iv_1}^{-\\infty + iv_2}$ and $\\int_{+\\infty + iv_2}^{+\\infty + iv_1}$ are zero because the integrand is zero at $Re[z]= \\pm \\infty$.    \n",
    "The residual is \n",
    "$$ \\begin{aligned}\n",
    "Res(i) &= \\lim_{z\\to i}\\; -(z-i)\\,  e^{-rT} e^{-izk} \\frac{1}{z(z-i)} \\; \\phi_T(-z) \\; \\frac{K}{2\\pi} \\\\\n",
    "       &= -\\frac{S_0}{2\\pi i } \n",
    "\\end{aligned}$$\n",
    "\n",
    "where we recall that $\\phi_T(-i) = e^{rT}$. Rearranging the terms we get the alternative expression:\n",
    "\n",
    "$$ C(S_0, K,T) = S_0 - \\frac{K e^{-rT}}{2\\pi} \\int_{iv_2-\\infty}^{iv_2+\\infty} e^{-izk} \\frac{1}{z^2-iz} \\; \\phi_T(-z) \\; dz.$$\n",
    "\n",
    "For $v_2=\\frac{1}{2}$, we can replance $z=u+\\frac{i}{2}$ and obtain the final form: \n",
    "\n",
    "$$ C_0 = S_0 - \\frac{\\sqrt{S_0 K} e^{-rT}}{\\pi} \\int_{0}^{\\infty} Re \\biggl[ e^{iuk} \\phi_T \\bigg(u-\\frac{i}{2} \\bigg) \\biggr] \\frac{1}{u^2 + \\frac{1}{4}} du. $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def Lewis(K, cf):\n",
    "    \"\"\" Numerical integration of the Lewis expression \n",
    "    K = strike\n",
    "    cf = characteristic function \"\"\"\n",
    "    k = np.log(S0/K)\n",
    "    integrand = lambda u: np.real( np.exp(u*k*1j) * cf(u - 0.5j) ) * 1/(u**2 + 0.25)\n",
    "    int_value = quad(integrand, 0, 2000, limit=1000 )[0]\n",
    "    return S0 - np.sqrt(S0 * K) * np.exp(-r*T)/np.pi * int_value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Black-Scholes: Lewis call:  13.269676584660886\n",
      "Black-Scholes: Fourier inversion call:  13.2696765846609\n",
      "\n",
      "Merton: Lewis call:  22.0163676219057\n",
      "Merton: Fourier inversion call:  22.0163676219057\n",
      "\n",
      "Variance Gamma: Lewis call:  13.314021941453163\n",
      "Variance Gamma: Fourier inversion call:  13.314021941453447\n"
     ]
    }
   ],
   "source": [
    "print(\"Black-Scholes: Lewis call: \", Lewis(100, cf_GBM) )\n",
    "print(\"Black-Scholes: Fourier inversion call: \",call_BS)\n",
    "print()\n",
    "print(\"Merton: Lewis call: \", Lewis(100, cf_Mert))\n",
    "print(\"Merton: Fourier inversion call: \", call_Mert)\n",
    "print()\n",
    "print(\"Variance Gamma: Lewis call: \", Lewis(100, cf_VG_b))\n",
    "print(\"Variance Gamma: Fourier inversion call: \", call_VG)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a id='sec5'></a>\n",
    "# FFT method\n",
    "\n",
    "Above we have numerically calculated the integral of the Lewis expression.    \n",
    "However, when we want to compute the price of a large number of options with the same maturity, the previous method is no more efficient.    \n",
    "A solution is to take advantage of the [FFT](https://en.wikipedia.org/wiki/Fast_Fourier_transform) (Fast Fourier Transform) algorithm to reduce the computational cost.\n",
    "\n",
    "Let us recall that the *real part* of a complex number is linear, i.e. for $a,b\\in \\mathbb{R}$ we have $Re[a z_1 + b z_2] = a Re[z_1] + b Re[z_2]$, and the real part of an integral is the integral of the real part.    \n",
    "Thanks to this property, the integral pricing formula can be written in the following form:\n",
    "\n",
    "$$ C_0 = S_0 - \\frac{\\sqrt{S_0 K} e^{-rT}}{\\pi} Re \\biggl[ \\int_{0}^{\\infty} e^{iuk} \\phi_T \\bigg(u-\\frac{i}{2} \\bigg) \\frac{1}{u^2 + \\frac{1}{4}} du \\biggr]. $$\n",
    "\n",
    "At this point we can discretize the integral. Following [3], we use the [Simpson rule](https://en.wikipedia.org/wiki/Simpson%27s_rule).     \n",
    "The domain of integration is truncated in $[A,B] = [0,B]$, and divided in $N$ steps of size $\\Delta x = \\frac{B}{N}$.\n",
    "We have that $x_0 = 0$ and $x_n = x_0 + n \\Delta x$, for $n=0,1,2,...,N$. The integral is evaluated in $N+1$ points $f(x_n) = f_n$.     \n",
    "The Simpson rule is a 3 points rule that approximates the integral as:\n",
    "\n",
    "$$ \\int_{x_0}^{x_2} f(x) \\, dx \\approx \\frac{\\Delta x}{3} \\big[ f_0 + 4 f_1 + f_2 \\big]. $$\n",
    "\n",
    "if we sum over the integration domain $[x_0, x_{N-1}]$ we get\n",
    "\n",
    "$$ \\int_{x_0}^{x_{N-1}} f(x) \\, dx \\approx \\frac{\\Delta x}{3} \\sum_{n=0}^{N-1} w_n \\, f_n. $$\n",
    "\n",
    "with $w_n=1$ for $n=0$ and $n=N-1$, and $w_n=4$ for $n$ odd, and $w_n=2$ for $n$ even. Notice that we are not considering the last point!\n",
    "\n",
    "Let us define a set of $N$ values $k_j \\in [-b,b]$, such that $k_j = -b + j \\Delta k$, for $j=0,1,2,...,N-1$. We define the step $\\Delta k$ as \n",
    "\n",
    "$$ \\Delta k := \\frac{2 \\pi}{B} = \\frac{1}{\\Delta x} \\frac{2 \\pi}{N} $$       \n",
    "\n",
    "such that we can obtain the value $b=\\frac{N \\Delta k}{2}$.    \n",
    "The integral in the pricing function is:\n",
    "\n",
    "$$ \n",
    "\\begin{aligned}\n",
    "I(k_k) &= \\int_{0}^{\\infty} e^{ixk_j} \\phi_T \\bigg(x-\\frac{i}{2} \\bigg) \\frac{1}{x^2 + \\frac{1}{4}} dx \n",
    "\\quad \\approx \\quad \\frac{\\Delta x}{3} \\sum_{n=0}^{N-1} w_n \\, e^{ik_j x_n} \\phi_T \\bigg( x_n-\\frac{i}{2} \\bigg) \\frac{1}{{x_n}^2 + \\frac{1}{4}} \\\\\n",
    "&= \\frac{\\Delta x}{3} \\sum_{n=0}^{N-1} w_n \\, e^{i (-b + j \\Delta k) n \\Delta x} \\phi_T \\bigg( x_n-\\frac{i}{2} \\bigg) \\frac{1}{{x_n}^2 + \\frac{1}{4}}. \\\\\n",
    "&= \\frac{\\Delta x}{3} \\sum_{n=0}^{N-1} \\, e^{i 2\\pi j \\frac{n}{N}} \\; w_n e^{-i b n \\Delta x} \\phi_T \\bigg( x_n-\\frac{i}{2} \\bigg) \\frac{1}{{x_n}^2 + \\frac{1}{4}}.\n",
    "\\end{aligned}$$\n",
    "\n",
    "The [scipy function fft](https://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.fft.html) returns the following: `y(j) = (x * exp(-2*pi*sqrt(-1)*j*np.arange(n)/n)).sum()`.     \n",
    "The [scipy function ifft](https://docs.scipy.org/doc/scipy/reference/generated/scipy.fftpack.ifft.html#scipy.fftpack.ifft) returns: `y(j) = (x * exp(2*pi*sqrt(-1)*j*np.arange(n)/n)).mean()`.    \n",
    "Therefore we can use `ifft` and then multiply the output by N."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def fft_Lewis(K, S0, cf, interp=\"cubic\"):\n",
    "    \"\"\" \n",
    "    K = vector of strike\n",
    "    S = spot price scalar\n",
    "    cf = characteristic function\n",
    "    interp can be cubic or linear\n",
    "    \"\"\"\n",
    "    N=2**12                          # FFT more efficient for N power of 2\n",
    "    B = 200                          # integration limit \n",
    "    dx = B/N\n",
    "    x = np.arange(N) * dx            # the final value B is excluded\n",
    "\n",
    "    weight = np.arange(N)            # Simpson weights\n",
    "    weight = 3 + (-1)**(weight+1)\n",
    "    weight[0] = 1; weight[N-1]=1\n",
    "\n",
    "    dk = 2*np.pi/B\n",
    "    b = N * dk /2\n",
    "    ks = -b + dk * np.arange(N)\n",
    "\n",
    "    integrand = np.exp(- 1j * b * np.arange(N)*dx) * cf(x - 0.5j) * 1/(x**2 + 0.25) * weight * dx/3\n",
    "    integral_value = np.real( ifft(integrand)*N )\n",
    "    \n",
    "    if interp == \"linear\":\n",
    "        spline_lin = interp1d(ks, integral_value, kind='linear')\n",
    "        prices = S0 - np.sqrt(S0 * K) * np.exp(-r*T)/np.pi * spline_lin( np.log(S0/K) )\n",
    "    elif interp == \"cubic\":\n",
    "        spline_cub = interp1d(ks, integral_value, kind='cubic')\n",
    "        prices = S0 - np.sqrt(S0 * K) * np.exp(-r*T)/np.pi * spline_cub( np.log(S0/K) )\n",
    "    return prices"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let us select a set of strikes:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 10  20  30  40  50  60  70  80  90 100 110 120 130 140 150 160 170 180\n",
      " 190 200]\n"
     ]
    }
   ],
   "source": [
    "KK = np.arange(10,201,10)\n",
    "print(KK)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We run the `fft_Lewis` function for the three models used in this notebook.   \n",
    "After that, we compute the error (L1 norm) which is considered as the sum of absolute differences between option prices computed by closed formula and FFT.\n",
    "This error is mainly due to the interpolation method used. \n",
    "One property of the FFT method is that the resulting values are on an equally spaced log-moneyness array. \n",
    "But most of the time, the desired values are not on this equidistant array, and therefore we are forced to use interpolation methods to find the intermediate values.\n",
    "\n",
    "We can see that linear interpolation does not work very well, while cubic spline provides the desired results.\n",
    "\n",
    "#### Black Scholes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BS linear interp Error: 0.0607495988699249\n",
      "BS cubic spline Error: 1.998515423570768e-05\n"
     ]
    }
   ],
   "source": [
    "prices_BS_cub = fft_Lewis(KK, S0, cf_GBM, interp=\"cubic\")\n",
    "prices_BS_lin = fft_Lewis(KK, S0, cf_GBM, interp=\"linear\")\n",
    "\n",
    "print(\"BS linear interp Error:\", np.linalg.norm(prices_BS_lin - BS_pricer.BlackScholes(\"call\",S0,KK,T,r,sig),1) )\n",
    "print(\"BS cubic spline Error:\", np.linalg.norm(prices_BS_cub - BS_pricer.BlackScholes(\"call\",S0,KK,T,r,sig),1) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Merton"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "Merton_prices = np.zeros_like(KK, dtype=float)\n",
    "for i in range(len(KK)):\n",
    "    Merton.K = KK[i]\n",
    "    Merton_prices[i] = Merton.closed_formula()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Merton linear interpolation error: 0.037010068189591294\n",
      "Merton cubic spline error: 1.0136974953667277e-05\n"
     ]
    }
   ],
   "source": [
    "prices_M_cub = fft_Lewis(KK, S0, cf_Mert, interp=\"cubic\")\n",
    "prices_M_lin = fft_Lewis(KK, S0, cf_Mert, interp=\"linear\")\n",
    "\n",
    "print(\"Merton linear interpolation error:\", np.linalg.norm(prices_M_lin-Merton_prices,1) )\n",
    "print(\"Merton cubic spline error:\", np.linalg.norm(prices_M_cub-Merton_prices,1) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Variance Gamma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "VG_prices = np.zeros_like(KK, dtype=float)\n",
    "for i in range(len(KK)):\n",
    "    VG.K = KK[i]\n",
    "    VG_prices[i] = VG.Fourier_inversion()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "prices_VG_cub = fft_Lewis(KK, S0, cf_VG_b, interp=\"cubic\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "VG cubic spline error: 2.3181008812489523e-05\n"
     ]
    }
   ],
   "source": [
    "print(\"VG cubic spline error:\", np.linalg.norm(prices_VG_cub-VG_prices, 1) )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Performances:\n",
    "\n",
    "When we want to price several options with same maturity (let's say, more than 10) the FFT method is the best."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "200 ms ± 10.5 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "VG_prices = np.zeros_like(KK, dtype=float)\n",
    "for i in range(len(KK)):\n",
    "    VG.K = KK[i]\n",
    "    VG_prices[i] = VG.Fourier_inversion()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.51 ms ± 30 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
     ]
    }
   ],
   "source": [
    "%%timeit\n",
    "prices_VG_cub = fft_Lewis(KK, S0, cf_VG_b, interp=\"cubic\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    "[1] Martin Schmelze (2010), Option Pricing Formulae using Fourier Transform: Theory and Application. \n",
    "\n",
    "[2] N.G. Shephard (1991), \"From characteristic function to distribution function, a simple framework for the theory\", Econometric Theory, 7, 519-529.\n",
    "\n",
    "[3] Carr, P. and D. Madan (1999). \"Option valuation using the fast Fourier transform\",\n",
    "Journal of Computational Finance 2(4), 61–73.\n",
    "\n",
    "[4] Lewis, A. (2001) \"A Simple Option Formula for General Jump-Diffusion and other Exponential Lévy Processes\", Envision Financial Systems and OptionCity.net, California.\n",
    "\n",
    "[5] Gil-Pelaez, J. (1951) \"Note on the inversion theorem\", Biometrika 38(3–4), 481–482."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
